1. 程式人生 > >spring 中bean生命周期

spring 中bean生命周期

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; import
org.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); } @Override
public 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生命周期