Car中有init方法和destory方法
(这里的方法名可以可以随便定义,不一定要是init和destroy,标签的属性名对就行了)
<bean id="car" class="com.llf.bean.Car" init-method="init" destroy-method="destroy"> <property name="brand" value="长安"></property> <property name="speed" value="300"></property> <property name="price" value="100000"></property> </bean>
这里是Java的后置处理器代码
package com.llf.bean.postprocess; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; /** * @author linglongfang */ public class MyBeanPostProcess implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessBeforeInitialization"+beanName); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("postProcessAfterInitialization"+beanName); return bean; } }
这里是xml文件的配置:bean的后置处理器,不需要id属性值,因为并不需要的实体bean
<bean id="car" class="com.llf.bean.Car" init-method="init" destroy-method="destroy"> <property name="brand" value="长安"></property> <property name="speed" value="300"></property> <property name="price" value="100000"></property> </bean> <bean class="com.llf.bean.postprocess.MyBeanPostProcess"></bean>
这里是调用Java代码
package com.llf.test; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author linglongfang */ public class Main { public static void main(String[] args){ ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml"); Object car = ac.getBean("car"); //获取bean System.out.println(car); //打印bean ac.close();//关闭ioc容器 } }
这里是结果截图
SpringIOC容器-xml配置bean-bean的生命周期及后置处理器 BeanPostProcess
原文:https://www.cnblogs.com/linglongfang/p/12726848.html