目录
Spring是什么?
Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止应用于企业应用。
是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
1.从大小与开销方面而言spring都是轻量级的
2.通过控制反转的技术达到松耦合的目的
3.提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发
4.包含并管理应用对象的配置和生命周期,这个意义上是一种容器
5.将简单的组件配置、组合成为复杂的应用,这个意义上是框架
Spring的作用
1.容器
2.提供了多种技术的支持
--JMS --MQ支 --UnitTest
--...............
3.AOP(事务管理、日志等)
4.提供了众多方便应用的辅助类(JDBC Template等)
5.对主流应用框架(Hibernate等)提供了良好的支持
IoC
控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是有外部容器负责创建和维护
DI(依赖注入)是其中一种实现方式
目的:创建对象并且组装对象之间的关系
Spring的Bean配置
Bean容器的初始化
1.文件:
FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("F:/workspace/appcontext.xml")
2.ClassPath:
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:appcontext.xml")
3.Web应用:
Spring的注入:
是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为
常用的两种注入方式
--设值注入 (set方法)
<bean id="teacher" class="com.ioc.Teacher">
<property name="name" value="Ding"></property>
</bean>
--构造注入
<bean id="student" class="com.ioc.Student">
<constructor-arg name="name" value="Boy"></constructor-arg>
</bean>
Bean
Bean的配置项:id、class 、Scope、Constructor arguments、Properties、Autowiring mode、lazy-initialization mode、Initialization/destruction method
Bean的作用域(Scope):
singleton:单例,指一个Bean容器中只存在一份
prototype:每次请求(每次使用)创建新的实例,destroy方式部生效
request:每次HTTP请求创建一个实例且仅在当前request内有效
session:同上,每次HTTP请求创建,当前session内有效
global session:基于portlet的web中有效(portlet定义了global session),如果是在web中,同session
Bean的生命周期:
定义:
初始化2种方法:
1.实现org.springframework.bean.factory.InitializingBean接口,覆盖afterPropertiesSet方法
2.配置init-method,再在对象中定义init方法
<bean id="teacher" class="com.ioc.Teacher" init-method="init"/>
使用:
销毁2种方法:
1.实现org.springframework.bean.factory.DisposableBean接口,覆盖destroy方法
2.配置destroy-method,再在对象中定义cleanup方法
<bean id="teacher" class="com.ioc.Teacher" destroy-method="cleanup"/>
还可以配置全局默认的初始化、销毁方法。
Aware