spring 官網中 1,5 章分別是介紹IOC 和 AOP
IOC 控制反轉
DI 依賴注入
所謂的Bean 這裡指的是(Spring Bean),是一定在Spring 容器中,有完整生命週期的。
@Autowired 與 @Resourse 的區別
1、包不同,@Autowired 是Spring 包 , @Resourse 是 Javax
2、@Autowired 先byType 的找 ,如果找到多个,再 byName。
@Resourse 是直接 byName 的找。
原因是後置處理器的处理逻辑不同,@Autowired 是由AutowiredAnnotationBeanPostProcessor.java 解析器解析。@Resourse 是 CommonAnnotationBeanPostProcesser 解析器解析。
Autowiring Modles 自動裝配模型,只是針對XML base 的方式的
@Autowired 不算自動裝配,算手動裝配
依賴注入
依賴注入方式: 2種(構造方法 和 set 方法)
依賴注入模型:4種 (no, type, name 和 構造)
如果有多個構造方法,而且參數有很多,Spring 會使用參數多的構造方法
啟動初始化
1、單例是啟動的時候就初始化;
2、原型是getBean 時候才初始化;
但是如果原型,被單例作為依賴時(就是原型的被@Autowired 在 單例bean中),那麼初始化的時候會和單例保持一致,也是單例。
3、針對第二點,如果想獲得原型的bean ,可以使用@lookup 和 實現xxwear 接口