spring 中bean生命周期
阿新 • • 發佈:2017-09-26
encoding 學習 tostring true ice ava initial oid pan
從頭開始學習spring(一)
傳統編程中,依賴關系比較多的情況下,導致維護成本直線上升,spring 采用Ioc對bean進行管理,減少了開發人員的工作量
正確理解spring bean 的生命周期非常重要
package com.study.spring.beans; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware;import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.ApplicationContext; importorg.springframework.context.ApplicationContextAware; public class MyBeanLifeCycle implements BeanNameAware, BeanFactoryAware, ApplicationContextAware, BeanPostProcessor, InitializingBean, DisposableBean { @Override public void setBeanName(String s) { System.out.println("bean id : " + s); } @Overridepublic void destroy() throws Exception { System.out.println("destroy"); } @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { System.out.println("beanFactory : " + beanFactory.toString()); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { System.out.println("applicationContext : " + applicationContext.getApplicationName()); } @Override public Object postProcessBeforeInitialization(Object o, String s) throws BeansException { System.out.println("postProcessBeforeInitialization : " + s); return o; } @Override public Object postProcessAfterInitialization(Object o, String s) throws BeansException { System.out.println("postProcessAfterInitialization : " + s); return o; } @Override public void afterPropertiesSet() throws Exception { System.out.println("afterPropertiesSet"); } }
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean class="com.study.spring.service.impl.HelloServiceImpl" id="helloService"/> <bean id="myBean" class="com.study.spring.beans.MyBeanLifeCycle"/> </beans>
spring 中bean生命周期