spring雜談

spring優勢spring

 

方便解耦,簡化開發編程

 

Spring就是一個大工廠,能夠將全部對象建立和依賴關係維護,交給Spring管理session

 

AOP編程的支持框架

 

Spring提供面向切面編程,能夠方便的實現對程序進行權限攔截、運行監控等功能post

 

聲明式事務的支持測試

 

只須要經過配置就能夠完成對事務的管理,而無需手動編程prototype

 

方便程序的測試對象

 

Spring對Junit4支持,能夠經過註解方便的測試Spring程序生命週期

 

方便集成各類優秀框架事務

 

Spring不排斥各類優秀的開源框架,其內部提供了對各類優秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持

 

下降JavaEE API的使用難度

 

Spring 對JavaEE開發中很是難用的一些API(JDBC、JavaMail、遠程調用等),都提供了封裝,使這些API應用難度大大下降

 

<bean>的做用範圍:scope屬性:
Spring建立Bean的時候默認狀況下使用單例模式建立:
scope:
* singleton :默認值.默認就會採用單例模式建立Bean.
* prototype :Spring建立Bean的時候採用多例模式.
* request :Web項目中使用.Spring建立Bean的時候,將Bean保存到request域中.
* session :Web項目中使用.Spring建立Bean的時候,將Bean保存到session域中.
* globalsession :Web項目中使用.通常用於Porlet應用環境.若是沒有Porlet環境.配置了globalsession等同於session.

 

 

Spring生成Bean的時候有一個完整的生命週期:(11個步驟:)

1.instantiate bean對象實例化

2.populate properties 封裝屬性

3.若是Bean實現BeanNameAware 執行 setBeanName

4.若是Bean實現BeanFactoryAware 或者 ApplicationContextAware 設置工廠 setBeanFactory 或者上下文對象 setApplicationContext

5.若是存在類實現 BeanPostProcessor(後處理Bean) ,執行postProcessBeforeInitialization

6.若是Bean實現InitializingBean 執行 afterPropertiesSet

7.調用<bean init-method="init"> 指定初始化方法 init

8.若是存在類實現 BeanPostProcessor(處理Bean) ,執行postProcessAfterInitialization

9.執行業務處理

10.若是Bean實現 DisposableBean 執行 destroy

11.調用<bean destroy-method="customerDestroy"> 指定銷燬方法 customerDestroy

相關文章
相關標籤/搜索