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

相关文章
相关标签/搜索