大家中午好啊!我們今天來聊聊spring之管理bean的生命週期吧!

1,創建一個類:
public class Car {
private String brand;
public Car() {
System.out.println("Car.constructor 構造器");
}
@Override
public String toString() {
return "Car [brand=" + brand + "]";
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
System.out.println("setBrand");
this.brand = brand;
}
public void one() {
System.out.println("init.......");
}
public void last() {
System.out.println("destory......");
}
}

2,配置xml:
<bean>
destroy-method="last">
<property>
/<bean>
< !-- 配置bean的後置處理器 ,不需要配置id,IOC容器會自動識別
實現BeanPostProcessor接口,並提供
postProcessBeforeInitialization:init-method之前調用
postProcessAfterInitialization:destroy-method之後調用
bean:bean的實例;
beanName:IOC容器配置的bean的ID的名稱
返回值:實際返回給用戶的那個bean,不過可以在以上兩個方法中修改bean
-->
<bean>
3,寫主函數:
public class Cycle {
public static void main(String[] args) {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("bean-cycle.xml");
Car car = (Car) ctx.getBean("car");
System.out.println(car);
ctx.close();
}
}
4,創建bean的後置處理器:
public class MybeanProfessor 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);
Car car =new Car();
car.setBrand("Ford");
return car;
}
}
5,spring IOC管理bean生命週期的過程:
(1)通過構造器或著工廠創建bean實例
(2)為bean設置屬性或著引用其它bean
(3)調用postProcessBeforeInitialization方法
(4)調用bean的初始化方法
(5)調用postProcessAfterInitialization方法
(6)使用bean
(7)關閉容器後調用destroy方法
今天的內容希望大家會喜歡!求關注哦!另外,更多精彩內容請關注尚學堂!
閱讀更多 火到沒朋友的大數據 的文章
關鍵字: XML