- 如果直接使用new的形式,如果接口换了,那么这个service要不要重新编译,重新测试,重新部署,重新发布。就会导致我们的代码耦合度偏高。
- 解决方案为,在使用对象时,程序不要主动使用new产生对象,转换为由外部提供对象(IOC控制反转)–》主要目的就是解耦。
- spring对ioc思想进行了实现,提供了一个容器,称为ioc容器。它把它管理的对象统称为Bean。
- 依赖注入:把service需要的dao对象进行注入,最终的效果是所有的的依赖关系已经帮你绑定好了。
- 使用spring导入坐标?(pom文件)
- 如何将被管理的对象告知IOC容器?(使用配置的方法)
- 被管理的对象交给ioc容器,如何获取ioc容器?(接口)ioc容器获得到后,如何从容器中获取bean?(接口方法)
- 首先要提供对应的set方法
- 写配置文件,告知bean对象的关系
- 可以配置别名
- bean的作用范围(默认是单例的)
- bean的实例化方法:
spring创建bean的时候调用的是无参的构造方法,如果无参的构造方法不存在会抛一个异常叫beanCreationException。 - FactoryBean实例化Bean(重点):
- bean的生命周期
这个是初始化方法和结束方法的配置。
这两个接口各对应一个方法,分别对应初始化和销毁方法。和上面的一样也可以控制。
向一个类种传递数据有几种方式?
- 普通方法(set方法)
- 构造方法
如果需要注入的不是bean而是数字或字符串呢? - 引用类型
- 简单类型
排列组合一下有四种情况
① setter注入引用类型,需要先提供set方法
②setter注入简单类型,需要先提供set方法
③构造器注入,引用类型
④构造器注入,基本类型
⑤但是现在配置文件和代码是紧耦合的,要保证注入的属性是一致的。可以换成按照类型注入。
⑥还可以根据第几个参数进行注入
⑦怎么选是构造器注入还是Setter方法注入?
如果是强制依赖的属性,使用构造器注入。
- 按类型,如果有两个相同类型的bean会报错。(主要使用)
- 按名称匹配,名称不一样会报错。
- 自动装配不能对简单类型进行 *** 作。。。。
- 注解定义bean:
- 纯注解开发:使用配置类替换配置文件
然后换一个applicationContext
- bean的作用范围和生命周期
①变成非单例对象:
②加上生命周期方法
- 注解开发依赖注入
①@Autowired注解可以自动帮我们加上set方法,不需要写set方法了(暴力反射)【按照类型装配】
②如果同一个类型的bean有多个,那么就需要按照名称装配
如果不使用@Qualifier的话,就会按照对象的名称找。
③简单类型怎么注入
④如果是要用到外部的属性文件呢
⑤第三方bean管理
配置类也可以导入很多小的配置类
⑥为第三方bean注入资源
简单类型
引用类型:直接加了个形参就自动装配了。(根据类型注入)
- 思路分析:只有接口没有实现类,说明是用自动代理做的。Mybatis管理的就是SqlSessionFactory对象。
- 整合流程
①导入spring *** 作jdbc的坐标和Mybatis与spring整合的坐标
②配置数据源
③注解开发配置类
④MybatisConfig
⑤做完了!
- 总结
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)