spring 中bean生命周期

Posted 胡椒孜然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 中bean生命周期相关的知识,希望对你有一定的参考价值。

从头开始学习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生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Spring应用上下文中Bean的生命周期

Spring课程 Spring入门篇 3-2 Spring bean装配(上)之bean的生命周期

spring中bean的生命周期是怎么样的

Spring事务,Bean生命周期

深究Spring中Bean的生命周期

spring生成bean对象的生命周期都有哪些种类?