IOC操作bean管理(Bean的生命周期)

1.什么叫生命周期

生命周期就是从创建对象到销毁对象的过程

2.bean生命周期

(1)通过构造器创建bean实例(使用无参构造器)

(2)为bean的属性设置值和对其他bean引用(通过set方法)

(3)调用bean的初始化方法(需要进行配置)

(4)获取到bean对象之后可以使用bean

(5)当容器关闭的时候,调用bean的销毁的方法(需要进行配置销毁的方法)

3.测试bean生命周期

(1)实现的类和相关方法

public class Orders {
    private String ordersName;

    //使用无参构造器
    public Orders() {
        System.out.println("第一步:通过无参构造器创建bean实例");
    }

    //为bean的属性设置值
    public void setOrdersName(String ordersName) {
        this.ordersName = ordersName;
        System.out.println("第二步:通过set方法,为bean的属性设置值");
    }

    public String getOrdersName() {
        return ordersName;
    }

    //创建执行bean的初始化方法
    public void initMethod() {
        System.out.println("第三步:执行初始化的方法");
    }

    //创建销毁bean的初始化方法
    public void desMethod() {
        System.out.println("第五步:执行销毁的方法");
    }

(2)xml配置文件

<bean id="orders" class="com.sst.spring5.bean.Orders" 
init-method="initMethod" destroy-method="desMethod">
        <property name="ordersName" value="电脑"></property>
     </bean>

(3)测试

public class TestOrders {
    @Test
    public void testOrders() {
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("bean07.xml");
        Orders orders = context.getBean("orders", Orders.class);
        //获取对象
        System.out.println("第四步:获取创建的bean对象实例");
        System.out.println(orders);
        System.out.println("OrdersName:" + orders.getOrdersName());
        //手动销毁对象
        context.close();
    }
}

(4)执行结果 

第一步:通过无参构造器创建bean实例
第二步:通过set方法,为bean的属性设置值
第三步:执行初始化的方法
第四步:获取创建的bean对象实例
com.sst.spring5.bean.Orders@7880cdf3
OrdersName:电脑
第五步:执行销毁的方法

4.加上bean的后置处理器,bean的生命周期有7步

(1)通过构造器创建bean实例(使用无参构造器)

(2)为bean的属性设置值和对其他bean引用(通过set方法)

(3)把bean的实例传递给后置处理器的postProcessBeforeInitialization方法

(4)调用bean的初始化方法(需要进行配置)

(5)把bean的实例传递给后置处理器的postProcessAfterInitialization方法

(6)获取到bean对象之后可以使用bean

(7)当容器关闭的时候,调用bean的销毁的方法(需要进行配置销毁的方法)

5.演示添加后置处理器后的效果

(1)创建类后实现BeanPostProcessor接口,创建后置处理器

public class Post implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("在初始化前执行的方法");
        return bean;
    }

    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("在初始化后执行的方法");
        return bean;
    }

}
<!--配置后置处理器-->
    <bean id="post" class="com.sst.spring5.bean.Post"></bean>

(2)创建后置处理器之后的执行结果

第一步:通过无参构造器创建bean实例
第二步:通过set方法,为bean的属性设置值
在初始化前执行的方法
第三步:执行初始化的方法
在初始化后执行的方法
第四步:获取创建的bean对象实例
com.sst.spring5.bean.Orders@10e92f8f
OrdersName:电脑
第五步:执行销毁的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值