spring 8 bean配置--IOC容器中bean的生命周期

1 spring允许在bean生命周期的特定点执行定制的任务。

    springIOC容器对bean生命周期进行管理的过程:

  1 创建bean实例

  2 为bean属性设置值,对其他bean引用

  3 调用bean的初始化方法

4 bean使用

5 关闭容器,调用bean的销毁方法

在bean的声明你设置init-method 和 destroy-method属性,为bean指定初始化和销毁方法。

<bean id="car" class="mdd.study.beans.cycle.Car" 
init-method="init" 
destroy-method="destroy"
>
<property name="brand" value="Audi"></property>
</bean>


main方法测试:

package mdd.study.beans.cycle;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Main {
public static void main(String[] args) {
ClassPathXmlApplicationContext ctx=new ClassPathXmlApplicationContext("beans-cycle.xml");

Car car=(Car)ctx.getBean("car");
System.out.println(car);

//关闭IOC容器
ctx.close();
}
}

2 bean的后置处理器

创建一个类实现BeanPostProcessor接口:

package mdd.study.beans.cycle;


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


public class MyBeanPostProcessor implements BeanPostProcessor{


@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("postProcessBeforeInitialization"+bean+","+beanName);
return bean;
}


@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {


System.out.println("postProcessAfterInitialization"+bean+","+beanName);
return bean;
}

}

xml:

只用配置全路径即可:

<bean class="mdd.study.beans.cycle.MyBeanPostProcessor"></bean>


在中可以修改bean,甚至返回一个新的bean

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("postProcessAfterInitialization"+bean+","+beanName);
Car car=new Car();
car.setBrand("Ford");
return car;
}

<!-- 实现BeanPostProcessor接口, 并具体提供
postProcessBeforeInitialization(Object bean, String beanName):init-method前被调用
 和postProcessAfterInitialization(Object bean, String beanName):init-method后被调用
 的实现
 
bean: bean实例本身
beanName:IOC容器配置的bean的名字
返回值:是实际上返回给用户的那个bean,注意:可以在以上两个方法中修改返回的bean,甚至返回一个新的bean
 -->


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值