1. Spring IOC--- IOC即Inversion of Control,控制反转;将bean的生成和管理交给Spring容器去做,可以降低代码耦合度。
2. DI--- Dependency Injection,依赖注入。
3. DI与SpringIOC的关系:DI是SpringIOC的一种实现方式(还有一种:依赖查找---> ctx.getBean(url))。
4. 为什么要使用SpringIOC?使用SpringIOC,将实例的产生和管理交给容器去做(可以管理bean的生命周期、可见性及类之间的关系等),开发者本身则可以解放出来聚焦于业务逻辑的实现。
5. 3种编程风格
schemal-based-------xml
annotation-based-----annotation
java-based----java Configuration
6. 两种注入方式:1 构造方法;2 get / set 方法
7. 要使用注解,需要开启注解和注解扫描(目前只需要开启注解扫描就可以了)。
8. 自动装配
IOC的注入有两个地方需要提供依赖关系,一是类的定义中,二是在spring的配置中需要去描述。自动装配则把第二个取消了,即我们仅仅需要在类中提供依赖,继而把对象交给容器管理即可完成注入。
在实际开发中,描述类之间的依赖关系通常是大篇幅的,如果使用自动装配则省去了很多配置,并且如果对象的依赖发生更新我们可以不需要去更新配置。
自动装配的方法:
- @Autowared 默认使用 byType(根据类型),找不到再使用byName (根据属性名称,不是setXXX方法的名称);@Resource 默认使用byName
9. bean是懒加载,在调用get方法的时候才初始化。
10. springbean作用域
- Singleton beans A 中应用ProtoType bean B的时候,B也只会实例化一次。因为A只实例化一次,所以B也只会设置一次(new一次)。