1. 程式人生 > >spring技術小結

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

定義的bean都將產生一個新例項,只有在web應用程式使用Spring時,該作用域才有效;
global session:和session類似,但是隻適用於portlet(另一個mvc框架),若在springmvc裡面就是session的效果

 

4.獲取spring容器

通過上面說的request,session之類的xxxxContext向上獲取spring容器(ApplicationContext);

或者直接實現ApplicationContextAware介面

或者直接通過配置獲取

 

ApplicationContext ctx  = new
ClassPathXmlApplicationContext("bean.xml");

 

 

PS.都不建議獲取spring容器,因為提高了耦合,汙染了程式碼。

並且通過配置獲取,會將初始化所有Bean例項。

 

5.spring的裝配

@Autowire 自動裝配。

@Qualifier 精確裝配。