美文网首页SpringFramework
IOC容器中Bean的生命周期

IOC容器中Bean的生命周期

作者: 逗比寨主 | 来源:发表于2019-07-15 18:42 被阅读0次

    IOC容器中Bean的生命周期

    1.SpringIOC管理Bean的生命周期

    Spring运行Bean在生命周期的特定点执行定制任务

    SpringIOC容器对Bean的生命周期管理的过程:

    1.创建Bean的实例

    2.赋值

    3.调用Bean的初始化方法

    4.容器关闭时,调用Bean的销毁方法

    在xml中生命init-method和destory-method属性,为Bean指定初始化和销毁方法

    2.调用init-method和destory-method

    Java代码

    package com.spring.cycle;
    
    public class CycleCar {
        private String brand;
    
        public String getBrand() {
            return brand;
        }
    
        public void setBrand(String brand) {
            this.brand = brand;
        }
    
        public void init(){
            System.out.println("init");
        }
    
        public void destory(){
            System.out.println("destory");
        }
    
        public CycleCar() {
            System.out.println("CycleCar");
        }
    }
    

    xml代码:

    <bean id="cycleCar" class="com.spring.cycle.CycleCar" init-method="init" destroy-method="destory">
        <property name="brand" value="BMW"></property>
    </bean>
    

    3.创建Bean后置处理器

    bean后置处理器语序在调用初始化方法前后对Bean进行操作

    bean后置处理器会对IOC容器的逐一处理所有Bean实例,而不是单一实例处理

    Java 代码:

    package com.spring.cycle;
    
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.config.BeanPostProcessor;
    
    public class MyPostProcessor implements BeanPostProcessor {
        @Override
        public Object postProcessBeforeInitialization(Object o, String s) throws BeansException {
            System.out.println("before  " + s);
            return o;
        }
    
        @Override
        public Object postProcessAfterInitialization(Object o, String s) throws BeansException {
            System.out.println("after   " + s);
            return o;
        }
    }
    

    xm代码:

    <bean class="com.spring.cycle.MyPostProcessor"></bean>
    

    相关文章

      网友评论

        本文标题:IOC容器中Bean的生命周期

        本文链接:https://www.haomeiwen.com/subject/qesokctx.html