Spring:
轻量级的开源框架;通过控制反转的技术达到松耦合的目的;提供面向切面编程的支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发;包含并管理应用对象的配置和生命周期。
IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。
DI:依赖注入,分为设值注入和构造注入。
设值注入:自动调用set方法。在UserInfoActionImpl中必须要有一个setUserinfoDAO()
构造注入:自动调用构造方法,在UserInfoActionImpl中必须要有一个参数是userinfoDAO的构造方法。
Bean配置项:
id:IOC容器中的唯一标识
class:具体实例化的类
scope:范围,作用域
singleton(单例):一个bean容器中只存在一个
prototype:每次请求(每次使用)创建新的实例,destory方式不生效。
request:每次http请求创建一个实例且仅在当前request内有效。
session:每次http请求创建一个实例且仅在当前session内有效。
global session:基于portlet的web中有效。如果在web中,同session。
constructor arguments:构造器的参数
properties:属性
autowiring mode:自动装配模式
lazy-initialization mode:懒加载模式
initialization/destruction method:初始化/销毁
Bean的生命周期:
定义:
初始化:
实现org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet方法。初始化的工作可以在做这个方法中实现。
配置xml文件中init-method
使用:
销毁:
实现org.springframework.beans.factory.DisposableBean接口,覆盖destroy方法。
配置xml文件中destroy-mothod
配置全局默认初始化、销毁方法:
在beans中配置:default-init-method=”init” default-destroy-method=”destroy”
Bean的自动装配:
no:不做任何操作,默认
byName:根据属性名进行自动装配。检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。
byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个,则抛异常。
constructor:如果容器中存在一个与参数类型与指定属性相同的构造器,则自动装配。