/** * @author: wangxiaobo * @create: 2020-10-03 15:11 **/ public class app { public static void main(String[] args) { // ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); // Video video=(Video) applicationContext.getBean("video"); // VideoOrder videoOrder= (VideoOrder) applicationContext.getBean("videoOrder"); // System.out.println(video.getTitle()); // System.out.println(videoOrder.getVideo()); // System.out.println(video.getChapterList()); // System.out.println(video.getVideoMap()); // Video2 video=(Video2) applicationContext.getBean("video2"); // System.out.println(video); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Orders orders = context.getBean("orders", Orders.class); System.out.println("第四步 获取创建 bean 实例对象"); System.out.println(orders); //手动让 bean 实例销毁 context.close(); } }
运行:
4 、 bean 的后置处理器, bean 生命周期有七步 ( 1 )通过构造器创建 bean 实例(无参数构造) ( 2 )为 bean 的属性设置值和对其他 bean 引用(调用 set 方法) (3)把 bean 实例传递 bean 后置处理器的方法 postProcessBe ( 4 )调用 bean 的初始化的方法(需要进行配置初始化的方法) ( 5 )把 bean 实例传递 bean 后置处理器的方法 postProcessAfterInitialization ( 6 ) bean 可以使用了(对象获取到了) ( 7 )当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法) 5 、演示添加后置处理器效果 ( 1 )创建类,实现接口 BeanPostProcessor ,创建后置处理器 package net.cybclass.sp.domain; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; /** * @author: wangxiaobo * @create: 2020-10-04 19:26 **/ public class MyBeanPost implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("在初始化之前执行的方法"); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("在初始化之后执行的方法"); return bean; } } <!--配置后置处理器--> <bean id="myBeanPost" class="net.cybclass.sp.domain.MyBeanPost"></bean>
运行: