07.10 spring之管理bean的生命週期

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

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......");

}

}

spring之管理bean的生命週期

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方法

今天的內容希望大家會喜歡!求關注哦!另外,更多精彩內容請關注尚學堂!

spring之管理bean的生命週期


分享到:


相關文章: