spring技術小結
1.DI和IOC
依賴注入(Dependency Injection)還是控制反轉(Inversion of Conctrol)
bean通過依賴注入,註冊到spring容器裡面。spring容器通過控制反轉,呼叫bean。
2.DI的方法
這裡網上很多配置注入,構造方法注入,類引數注入,get/set注入等等,一點總結能力都沒有啊。
其實就兩種,配置注入和方法注入。java8支援多註解(annotations)之後,方法注入多了靈活的註解注入。
3.bean的作用域
singleton:單例模式,在整個Spring IoC容器中,使用singleton定義的bean將只有一個例項;
prototype:原型模式,每次通過容器的getBean方法獲取prototype定義的Bean時,都將產生一個新例項;
request:每次HTTP請求中,使用request定義的bean都將產生一個新例項,只有在web應用程式使用Spring時,該作用域才有效;
session:每次HTTP請求中,使用session
global session:和session類似,但是隻適用於portlet(另一個mvc框架),若在springmvc裡面就是session的效果。
4.獲取spring容器
通過上面說的request,session之類的xxxxContext向上獲取spring容器(ApplicationContext);
或者直接實現ApplicationContextAware介面
或者直接通過配置獲取
ApplicationContext ctx = newClassPathXmlApplicationContext("bean.xml");
PS.都不建議獲取spring容器,因為提高了耦合,汙染了程式碼。
並且通過配置獲取,會將初始化所有Bean例項。
5.spring的裝配
@Autowire 自動裝配。
@Qualifier 精確裝配。