Spring学习之Bean装配、生命周期。。

Resource res = new FileSystemResource(" bean.xml"); //实例化文件系统资源bean.xml
BeanFactory factory = new XmlBeanFactory (res);//生成Bean工厂
ApplicationContext:ApplicationContext factory = new ClassPathXmlApplication (" bean.xml ");//生成Application实例

Spring IoC设计(控制反转)的核心是Bean容器,主要实现是指org.springframework.beans包,设计目标是与JavaBean组件一起使用。在Spring中对Bean的概念定义的比较广泛,普通的POJO,或者框架提供的bean都可以作为bean来配置、处理等。

1、Bean容器。管理bean的容器在Spring框架中有两个,BeanFactory和AppilicationContext。BeanFactory实现了工厂模式,提供了对Bean的创建。是最基础最核心的beanb工厂接口,是最高级抽象接口,允许通过名称创建和检索对象。ApplicationContext上下文则继承了BeanFactory接口,并对其进行了扩展,提供了一些更方便更好的方法,如增加了国际化消息,自动注册BeanPostProcessor等功能。他们的实现分别如下:


取得Bean代码如下:

 Chinese chinese = (Chinese) factory.getBean(" chinese ");

2、生命周期。Bean的生命周期无非是从定义使用到销毁,具体如下:

BwanPostProcessor的postProcessorBeforeInitialization() -> init-method() -> postProcessorAfterInitialization() -> singleton,prototype -> afterPropertiesSet()销毁.

定义:<bean id = "life" class = "lifecycle.Life" > </bean>

初始化:1)、用ini-method指定初始化方法, <bean id = "life" class = "lifecycle.Life" init-method="init"  > </bean>

2)、实现InitializationBean接口,增加接口中的方法afterPropertiesSet()方法。

调用:就是调用bean中的方法。

销毁:和初始化一样,有两种方法。分别是用destroy-method方法配置,或实现DisposebleBean接口。

BeanFactory和ApplicationContext中的Bean生命周期类似。

2、装配。用两种主要的方式,分别是用XML进行装配和用JDK5以后的Annotation注解进行装配。在XML装配中主要有两种方法。即设置注入和构造注入。

注入的原理都是反射,设值注入是利用无参构造方法进行反射实例化,然后调用set方法进行注入。

<bean id="man" class="set.Man" > 
 <property name="name"><value>Jack</value> </property>  
<property name="age" > <value> 24 </value></property>  
</bean>


构造注入的原理是通过反射实例化有相关参数的构造方法。和设值注入相比具有更大的依赖关系。为防止出现类型错误,可以指定type,index属性。

<bean id="animal" class="cons.Animal">
<contractor-arg type="java.lang.String" index="0"><value=>Jack</value> </contractor-arg>
<contractor-arg type="int"><value>5</value></contractor-arg>
</bean>


自动装配,可以根据属性名(byName)、属性类型(byType)进行自动装配,属性类型可以使相同的类型,也可以是子类,或者接口关系。

<bean id="building" class="cons.Building " autowire="byName" ></bean>

也可以不作为自动装配的候选者。

<bean id="building" class="cons.Building" autowire-condidate="false"> </bean>

在bean中还有一些特殊的bean,比如可以用于后处理的Bean,BeanPostProcessor,可以分别在Bean处理之前、之后调用。还有一种Bean可以是配置信息分离,有利于管理配置信息的Bean,PropertyPlaceholderConfigurer,属性占位符配置器等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架中,Bean的生命周期可以分为以下几个阶段: 1. 实例化(Instantiation):容器创建Bean的实例。 2. 属性赋值(Populate):容器将Bean的属性值设置到对应的属性中。 3. 初始化(Initialization):容器调用Bean的初始化方法。 4. 使用(In Use):Bean被容器使用。 5. 销毁(Destruction):容器销毁Bean的实例。 下面我们来详细介绍一下这些阶段。 1. 实例化 Bean的实例化可以通过两种方式实现: (1)使用构造函数创建Bean的实例。 (2)使用工厂方法创建Bean的实例。 无论使用哪种方式,一旦Bean实例化完成,Spring容器就会拥有该Bean的实例对象。 2. 属性赋值 属性赋值是指将Bean的属性值设置到对应的属性中。Spring框架提供了三种方式实现属性赋值: (1)通过构造函数注入。 (2)通过Setter方法注入。 (3)通过自动装配注入。 其中,自动装配注入分为byName、byType、constructor、autodetect四种方式。 3. 初始化 初始化是指在Bean实例化并完成属性赋值后,Spring容器会调用Bean的初始化方法进行一些额外的设置或操作。初始化方法包括两种: (1)实现InitializingBean接口的afterPropertiesSet()方法。 (2)在Bean配置文件中使用init-method属性指定初始化方法。 4. 使用 使用阶段是指Spring容器将Bean实例注入到需要使用该实例的地方,比如注入到其他Bean中。 5. 销毁 销毁阶段是指Spring容器在销毁Bean实例前会调用Bean的销毁方法进行一些清理工作。销毁方法包括两种: (1)实现DisposableBean接口的destroy()方法。 (2)在Bean配置文件中使用destroy-method属性指定销毁方法。 以上就是SpringBean的生命周期,通过了解Bean的生命周期,我们可以更好地理解Spring的运行机制,并且可以更好地使用Spring框架进行开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值