码迷,mamicode.com
首页 > 编程语言 > 详细

Spring4.0学习笔记(5) —— 管理bean的生命周期

时间:2016-03-20 00:20:58      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

Spring IOC 容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务

Spring IOC 容器对Bean的生命周期进行管理的过程:

1、通过构造器或工厂方法创建Bean的实例

2、为Bean的属性设置值和对其他Bean的引用

3、调用Bean的初始化方法

4、Bean可以使用了

5、当容器关闭时,调用Bean的销毁方法

bean文件

package com.spring.cycle;

public class Car {
    
    public Car(){
        System.out.println("Car‘s constructor...");
    }
    
    @Override
    public String toString() {
        return "Car [brand=" + brand + "]";
    }

    private String brand;
    
    public void setBrand(String brand){
        System.out.println("setBrand...");
        this.brand = brand;
    }
    
    public void init(){
        System.out.println("init...");
    }
    
    public void destroy(){
        System.out.println("destroy...");
    }
    
}

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="car" class="com.spring.cycle.Car" init-method="init" destroy-method="destroy">
        <property name="brand" value="Audi"></property>
    </bean>
    
    <bean class="com.spring.cycle.MyBeanPostProcesser">
    </bean>
</beans>
package com.spring.cycle;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class main {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("bean-cycle.xml");
        Car car = (Car)ctx.getBean("car");
        System.out.println(car);
        //关闭IOC容器
        ctx.close();
    }
}

 postProcessAfterInitialization 和 postProcessBeforeInitialization

package com.spring.cycle;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

public class MyBeanPostProcesser implements BeanPostProcessor {

    public Object postProcessAfterInitialization(Object arg0, String arg1)
            throws BeansException {
        System.out.println("postProcessAfterInitialization"+arg1);
        return arg0;
    }

    public Object postProcessBeforeInitialization(Object arg0, String arg1)
            throws BeansException {
        System.out.println("postProcessBeforeInitialization"+arg1);
        return arg0;
    }

}

bean的生命周期

Car‘s constructor... 【调用构造器】
setBrand... 【设置属性】
postProcessBeforeInitializationcar 【实例化方法前】
init...【实例化bean】
postProcessAfterInitializationcar 【实例化方法后】
Car [brand=Audi] 【调用toString()方法】
destroy... 【销毁bean】

Spring4.0学习笔记(5) —— 管理bean的生命周期

标签:

原文地址:http://www.cnblogs.com/cklovefan/p/5293180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!