Spring4 學習系列之——bean的生命週期

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">spring

    <bean id="car" class="comcycle.Car"
        init-method="init"
        destroy-method="destory"
    >
    <property name="bind" value="bind"></property>
    </bean>
    <!-- 配置bean 的後置處理器 -->
    <bean id="myposter" class="com.main.myBeanPostProcessor"></bean>
</beans>
 ide

package com.main;函數

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

import comcycle.Car;this

public class myBeanPostProcessor implements BeanPostProcessor {spa

    @Override
    public Object postProcessAfterInitialization(Object arg0, String arg1) throws BeansException {
        System.out.println("postProcessAfterInitialization" + "------------>" + arg1);
        // 初始化後改變bean的屬性值
        Car car = new Car();
        car.setBind("BMW");
        return car;
    }xml

    @Override
    public Object postProcessBeforeInitialization(Object arg0, String arg1) throws BeansException {
        System.out.println("postProcessBeforeInitialization" + "------------>" + arg1);
        return arg0;
    }get

}
 it

 

 

 

package comcycle;io

public class Car {
    
    private String bind;

    public Car() {
        System.out.println("構造函數初始化");
    }
    
    public void setBind(String bind) {
        this.bind = bind;
        System.out.println("Bind 方法被調用");
    }
    
    public void init(){
        System.out.println("init......");
    }
    
    public void destory() {
        System.out.println("destory.....");
    }

    @Override
    public String toString() {
        return "Car [bind=" + bind + "]";
    }

}
 

 

 

package com.main;

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

import comcycle.Car;

public class Cycle {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("cycle.xml");
        Car car = (Car) ctx.getBean("car");
        System.out.println(car);
        ((AbstractApplicationContext) ctx).close();
    }
}
 

控制檯

相關文章
相關標籤/搜索