spring后置处理器BeanPostProcessor和bean生命周期

1.后置处理器BeanPostProcessor可以使bean在被创建之前和之后先运行一段代码
首先,实现一个继承了BeanPostProcessor的类,类中实现了postProcessBeforeInitialization和postProcessAfterInitialization两个方法

/*
    1、编写后置处理器的实现类
    2、将后置处理器注册到配置文件中
 */
public class MyBeanPostProcesser implements BeanPostProcessor {


    /*
    postProcessBeforeInitialization
    初始化之前调用
    Object bean:是将要初始化的bean
    String beanName:在xml中配置的id
     */

    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(beanName+"要初始化le ");
        return bean;
    }
    /*
        postProcessAfterInitialization
        初始化之后调用
        Object bean:是将要初始化的bean
        String beanName:在xml中配置的id
    */
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(beanName+"初始化完了");
        return bean;
    }
}

然后在容器中为后置处理器进行配置,这样该容器中所有对象创建时都会调用后置处理器的两个方法。

<bean class="com.lzt.bean.MyBeanPostProcesser" id="beanPostProcesser"></bean>

2、bean生命周期
创建带有生命周期方法的bean
生命周期:bean的创建到销毁
ioc容器中注册的bean:
1)单实例bean:在容器启动的时候就会创建好,容器关闭也会销毁
2)多实例bean:获取的时候创建,
我们可以为bean自定义一些生命周期方法,spring在创建和销毁的时候就会调用这些指定的方法
自定义初始化方法和销毁方法:方法不能有参数

<bean class="com.lzt.bean.Book" name="book01" init-method="myInit"
    destroy-method="myDestory"></bean>

单例bean生命周期
构造器->初始化方法->(容器销毁)销毁方法
多实例:容器关闭不会销毁
获取bean(构造器->初始化方法)->容器销毁不调用销毁方法
有了后置处理器之后:
构造器->后置处理器before->初始化方法->后置处理器after->(容器销毁)销毁方法
不论bean是否有初始化方法,后置处理器都会工作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值