1、Ioc/DI,IoC容器,Bean
为了解决不同实现方式耦合度高
Ioc:(Inversion of Control)控制反转
主要思想:使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想成为控制反转
spring提供了一个Ioc容器,用来充当Ioc思想中的“外部”
并且将创建或被管理的对象在Ioc容器中统称为Bean
DI(Dependency Injection)依赖注入
在容器中建立bean与bean之间依赖关系的整个过程,称为依赖注入
将有关系的两个bean绑定
【Bean】入门案例
1、管理什么?(Service和Dao)
2、如何将被管理的对象告知IoC容器?(配置)
3、被管理的对象交给IoC容器,如何获取到IoC容器?(接口)
4、IoC容器得到后,如何从容器中获取bean?(接口方法)
编写容器
测试应用
总结流程:
1、导入Spring坐标
2、定义Spring管理的类(接口)
3、创建Spring配置文件,配置对应类作为Spring管理的bean
【DI】入门案例
1、基于IoC的管理bean
2、Service中使用new形式创建的Dao对象是否保留?(否)
3、Service中需要的Dao对象如何进入到Service中?(提供方法)
4、Service与Dao之间的关系如何描述?(配置)
设置对象set方法
配置Service与Dao的关系
此时new对象的过程就会交给容器自动的调用我们创建的set方法
Bean基础配置
1、bean基础配置
2、bean别名配置
3、bean作用范围配置
可以在bean标签里用属性name=“” (双引号里可以定义多个别名,可以用空格或是,或是;分隔开)
bean默认是单例的,如果想要非单例,可以用scope属性=propertype修改
bean的作用范围说明(控制bean创建实例数量的)
1、为什么bean默认为单例的?(为了复用提高效率节省内存)
2、适合交给容器进行管理的bean
·表现层对象
·业务层对象
·数据层对象
·工具对象
3、不适合交给容器进行管理的bean
·封装实体的域对象
实例化bean的三种方式——构造方法(常用)
第四种方法:实现FactoryBean接口类
spring报错检查
报错:
直接拉到最后面看cause by...如果不能解决就再往上面看