Java学习--spring框架--入门bean生命周期

  • IOC容器管理bean的生命周期,Spring允许在bean生命周期的特定点执行特定任务;
  • IOC容器对bean的生命周期进行管理的过程
  1. 通过构造器或工厂方法创建bean实例
  2. 为bean的属性设置值和对其他bean的引用
  3. 调用bean初始化方法
  4. 使用bean
  5. 容器关闭,调用bean的销毁方法
  • 可以在bean中设置init-method和destroy-method属性,为bean指定初始化和销毁方法
    配置xml指定初始化于销毁函数
<bean id="car" class="spring.cycle.Car" init-method="init" destroy-method="destroy">
        <property name="brand" value="FuTe"></property>
    </bean>

在Car类中设置初始化以及销毁等函数

public class Car {
    public Car(){
        System.out.println("Car's Constructor...");
    }
    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...");
    }

    @Override
    public String toString() {
        return "Car{" +
                "brand='" + brand + '\'' +
                '}';
    }
}

主函数

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

运行结果
运行结果

创建Bean后置处理器

  • bean后置处理器允许在调用初始化方法前后对bean进行额外处理
  • bean后置处理器对IOC容器的所有bean实例会逐一处理
  • bean写一个类实现BeanPostProcessor接口中的postProcessBeforeInitialization函数与postProcessAfterInitialization函数其中postProcessBeforeInitialization始在init函数之前执行而postProcessAfterInitialization则在init之后执行

写函数MyBeanPostProcessor类实现BeanPostProcessor接口

public class MyBeanPostProcessor implements BeanPostProcessor {
    public Object postProcessBeforeInitialization(Object o, String s) throws BeansException {
        System.out.println("postProcessBeforeInitialization: " +o+","+s);
        return o;
    }

    public Object postProcessAfterInitialization(Object o, String s) throws BeansException {
        System.out.println("postProcessAfterInitialization: " +o+","+s);
        return o;
    }
}

配置xml文件

 <bean class="spring.cycle.MyBeanPostProcessor"></bean>

再次运行主函数的结果
运行结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值