<?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"><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>package com.main;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;import comcycle.Car;
public class myBeanPostProcessor implements BeanPostProcessor {
@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; }@Override
public Object postProcessBeforeInitialization(Object arg0, String arg1) throws BeansException { System.out.println("postProcessBeforeInitialization" + "------------>" + arg1); return arg0; }}
package comcycle;
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(); } }控制台