Bean中的Scope
- Scope是描述Spring如何創(chuàng)建Bean實例的。spring的Scope有以下幾種:
- Singleton:一個Spring容器只有一個Bean實例,為Spring的默認配置
- Session:Web項目中,每一個http session一個Bean實例
- Request:Web項目中,每一個http request請求新建一個實例
- Prototype:每次調(diào)用新建一個Bean的實例
- GlobalSession:只在portal應(yīng)用中有用,每一個global http session新建一個實例
Spring EL 和資源調(diào)用
- Spring EL-Spring表達式語言,支持在xml和注解中使用表達式,類似于JSP的EL表達式語言
- 一般可以使用@Value注解中的參數(shù),實現(xiàn)注入普通文件、網(wǎng)址、配置文件、系統(tǒng)環(huán)境變量等等
Bean的初始化和銷毀
- Spring對Bean的生命周期的操作提供了支持,有Java配置和注解配置下的兩種方式:
- Java配置方式,使用@bean的initMethod和destoryMethod(相當于xml配置的init-method和destory-method)
- 注解方式:利用JSR-250的@PostConstruct和@PreDestory
Profile
- Profile為不同的環(huán)境下使用不同的配置提供了支持
- 可以通過設(shè)定Environment的ActiveProfiles來設(shè)置當前context所需要的環(huán)境配置,開發(fā)中使用@Profile注解類或方法,達到不同環(huán)境下實例化不同的bean
- 也可以通過設(shè)置jvm的spring.profiles.active參數(shù)來設(shè)置配置環(huán)境
事件(Application Event )
- Spring的事件為Bean與Bean之間的通信提供了支持,當一個Bean處理完一個任務(wù)之后,希望另外一個Bean知道并能做相應(yīng)的處理,這時我們需要用到事件
- Spring的事件需要遵循以下流程
- 自定義一個事件,繼承ApplicationEvent
- 自定義事件監(jiān)聽器,實現(xiàn)ApplicationListenter
- 使用容器發(fā)布事件,使用ApplicationContext的publishEvent方法來發(fā)布