深入理解Spring中bean的生命周期介绍

 更新时间:2017年03月27日 08:40:28   作者:高瑞林  
本篇文章主要介绍了深入理解Spring中bean的生命周期介绍,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1.以ApplocationContext上下文单例模式装配bean为例,深入探讨bean的生命周期:

(1).生命周期图:

(2).具体事例:

person类实现BeanNameAware,BeanFactoryAware接口

public class Person implements BeanNameAware ,BeanFactoryAware{
  
  private String name;
  
  public Person(){
    System.out.println("调用构造器为属性值初始化");
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  @Override
  public void setBeanName(String arg0) {
    // TODO Auto-generated method stub
    System.out.println("获取beanName id值"+" "+arg0);
    
  }

  @Override
  public void setBeanFactory(BeanFactory arg0) throws BeansException {
    // TODO Auto-generated method stub
    System.out.println("获取BeanFactory" +" "+arg0);
    
  }
}

public class MyBeanPostProcessor implements BeanPostProcessor{

  @Override
  public Object postProcessAfterInitialization(Object arg0, String arg1) throws BeansException {
    // TODO Auto-generated method stub
    System.out.println("调用postProcessAfterInitialization");
    return arg0;
  }

  @Override
  public Object postProcessBeforeInitialization(Object arg0, String arg1) throws BeansException {
    // TODO Auto-generated method stub
    System.out.println("调用postProcessBeforeInitialization");
    return arg0;
  }

}

ApplicationContext.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- bean的配置文件 -->
<bean id="person" class="org.jingdong.bean.life.Person">
<property name="name" value="grl"></property>
</bean>

<bean id="myBeanPostProcessor" class="org.jingdong.bean.life.MyBeanPostProcessor"></bean>
</beans>

Main.java

public class Main {
  public static void main(String[] args) {
    // 创建IOC容器
    ApplicationContext ac = new ClassPathXmlApplicationContext("org/jingdong/bean/life/applicationContext.xml");
    //从容器中获取bean实例
    Person person = (Person) ac.getBean("person");
    //使用bean
    System.out.println(person.getName());
  }
}

2.以Spring Factory装配bean为例:

(1).生命周期图:

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Springboot 如何指定获取自己写的配置properties文件的值

    Springboot 如何指定获取自己写的配置properties文件的值

    这篇文章主要介绍了Springboot 如何指定获取自己写的配置properties文件的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java之String.format()方法案例讲解

    Java之String.format()方法案例讲解

    这篇文章主要介绍了Java之String.format()方法案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 浅谈MyBatis执行SQL的两种方式

    浅谈MyBatis执行SQL的两种方式

    本文介绍MyBatis执行SQL语句的2种方式,主要是SqlSession和Mapper接口以及它们的区别,具有一定的参考价值,感兴趣的可以了解一下
    2021-08-08
  • 代理模式之Java动态代理实现方法

    代理模式之Java动态代理实现方法

    今天一个偶然的机会我突然想看看JDK的动态代理,因为以前也知道一点,而且只是简单的想测试一下使用,使用很快里就写好了这么几个接口和类,需要的朋友可以参考下
    2012-11-11
  • 用3个实例从原理到实战讲清楚Log4j史诗级漏洞

    用3个实例从原理到实战讲清楚Log4j史诗级漏洞

    最近应该很多人都在关注着一个漏洞Apache Log4j 2远程代码执行,该漏洞一旦被攻击者利用会造成严重危害,这篇文章主要给大家介绍了关于如何用3个实例从原理到实战讲清楚Log4j史诗级漏洞的相关资料,需要的朋友可以参考下
    2021-12-12
  • JavaScript base64 与 File 之间的互转(操作方法)

    JavaScript base64 与 File 之间的互转(操作方法)

    在JavaScript 中,可以使用 Blob 对象将 base64 字符串转换为 File 对象,这篇文章主要介绍了JavaScript base64 与 File之间的互转,需要的朋友可以参考下
    2024-05-05
  • java hutool工具类处理JSON的使用方法

    java hutool工具类处理JSON的使用方法

    hutool是一个java基础工具类,该工具类经过长期的发展,API已经非常齐全,下面这篇文章主要给大家介绍了关于java hutool工具类处理JSON的使用方法,需要的朋友可以参考下
    2024-04-04
  • java状态机方案解决订单状态扭转示例详解

    java状态机方案解决订单状态扭转示例详解

    这篇文章主要为大家介绍了java状态机方案解决订单状态扭转示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java同步代码块解决银行取钱的安全问题实例分析

    Java同步代码块解决银行取钱的安全问题实例分析

    这篇文章主要介绍了Java同步代码块解决银行取钱的安全问题,结合实例形式分析了java基于线程的同步问题实现与使用相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • Spring Data JPA使用JPQL与原生SQL进行查询的操作

    Spring Data JPA使用JPQL与原生SQL进行查询的操作

    这篇文章主要介绍了Spring Data JPA使用JPQL与原生SQL进行查询的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论