深入理解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).生命周期图:

  

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

相关文章

  • JAVA代码开发规范

    JAVA代码开发规范

    本文主要对JAVA代码开发规范进行详细介绍,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • java 配置MyEclipse Maven环境具体实现步骤

    java 配置MyEclipse Maven环境具体实现步骤

    这篇文章主要介绍了 java 配置MyEclipse Maven环境具体实现步骤的相关资料,具有一定的参考价值,需要的朋友可以参考下
    2016-11-11
  • Spring Boot非Web项目运行的方法

    Spring Boot非Web项目运行的方法

    这篇文章主要给大家介绍了关于Spring Boot非Web项目运行的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Java 生成PDF文档的示例代码

    Java 生成PDF文档的示例代码

    这篇文章主要介绍了Java 生成PDF文档的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 盘点总结SpringBoot自带工具类使用提升开发效率

    盘点总结SpringBoot自带工具类使用提升开发效率

    这篇文章主要为大家介绍了盘点总结SpringBoot自带工具类使用提升开发效率,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Spring定时任务@Scheduled注解(cron表达式fixedRate fixedDelay)

    Spring定时任务@Scheduled注解(cron表达式fixedRate fixedDelay)

    这篇文章主要为大家介绍了Spring定时任务@Scheduled注解(cron表达式fixedRate fixedDelay)使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • java eclipse 出现 xxx cannot be resolved to a type 错误解决方法

    java eclipse 出现 xxx cannot be resolved to a type 错误解决方法

    这篇文章主要介绍了java eclipse 出现 xxx cannot be resolved to a type 错误解决方法的相关资料,需要的朋友可以参考下
    2017-03-03
  • Java 轻松实现二维数组与稀疏数组互转

    Java 轻松实现二维数组与稀疏数组互转

    在某些应用场景中需要大量的二维数组来进行数据存储,但是二维数组中却有着大量的无用的位置占据着内存空间,稀疏数组就是为了优化二维数组,节省内存空间
    2022-04-04
  • 一文秒懂Java中的乐观锁 VS 悲观锁

    一文秒懂Java中的乐观锁 VS 悲观锁

    这篇文章主要介绍了java乐观锁 VS 悲观锁的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-05-05
  • java后端实现信息分页查询的示例代码

    java后端实现信息分页查询的示例代码

    在一个页面展示大量的用户信息不便于观看,因此就需要采用分页展示的方法,本文就来为大家介绍一下java后端如何实现信息分页查询,需要的小伙伴可以参考下
    2023-11-11

最新评论