BeanPostProcessor and static BeanFactory Create

来源:互联网 发布:新站优化方案 编辑:程序博客网 时间:2024/04/29 03:28
<span style="font-size:18px;">package com.spring.factory;public class Car {private int brand;private double price;public Car(){System.out.println("Construct car create..");}public Car(double price){System.out.println("Construct car(price) create..");this.price = price;}public int getBrand() {return brand;}public void setBrand(int brand) {this.brand = brand;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public void init(){System.out.println("car bean init()...");}public void destory(){System.out.println("car bean destory()...");}@Overridepublic String toString() {return "Car [brand=" + brand + ", price=" + price + "]";}}</span>
<span style="font-size:18px;"></span>
<span style="font-size:18px;"></span><pre name="code" class="java">package com.spring.factory;import java.util.HashMap;import java.util.Map;public class InstanceFactory {private Map<String ,Car> carMap = null;public InstanceFactory(){carMap = new HashMap<String ,Car>();carMap.put("BMW", new Car(5622));carMap.put("aodi", new Car(2000));}public Car getCarByName(String name){return carMap.get(name);}}

package com.spring.factory;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class MyBeanPostProcessor implements BeanPostProcessor{public Object postProcessAfterInitialization(Object bean, String arg1)throws BeansException {System.out.println("postProcessAfterInitialization"+bean+","+arg1);Car car = (Car)bean;car.setBrand(1);car.setPrice(1000);return bean;}public Object postProcessBeforeInitialization(Object bean, String arg1)throws BeansException {System.out.println("postProcessBeforeInitialization"+bean+","+arg1);return bean;}}

package com.spring.factory;import java.util.HashMap;import java.util.Map;public class StaticFactoryBean {private static Map<String ,Car> carMap = new HashMap<String ,Car>();static{System.out.println("StaticFactoryBean init static");carMap.put("BMW", new Car(5622));carMap.put("aodi", new Car(2000));}public static Car getCarByName(String name){return carMap.get(name);}}

package com.spring.factory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {public static void main(String[] args) {ApplicationContext appContext = new ClassPathXmlApplicationContext("beans-factory.xml");Car car = (Car)appContext.getBean("car");System.out.println("main:"+car);System.out.println("-------关闭Application--------");ClassPathXmlApplicationContext appContext2 = (ClassPathXmlApplicationContext)appContext;appContext2.close();}}



0 0
原创粉丝点击