一、bean生命周期:

其定义为:从对象的创建到销毁的过程。而Spring中的一个Bean从开始到结束经历很多过程,但总体可以分为六个阶段Bean定义、实例化、属性赋值、初始化、生存期、销毁

二、案例代码演示

1.首先我们来创建一个包,在包中创建一个Orders的对象,然后在对象中创建一个无参构造方法....

package Collectiona.bean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class MyBeanPost implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println("在初始化之前执行的方法。");return bean;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println("在初始化之后执行的方法。");return bean;}
}

2.SpringBean生命周期中的增强接口PostProcessor;postProcessBeforeInitialization方法执行前,会执行很多Aware类型的接口,这种类型接口作用是加载资源到Spring容器中。我们在创建一个MyBeanPost的类来实现BeanPostProcessor接口。

package Collectiona.bean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
public class MyBeanPost implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println("在初始化之前执行的方法。");return bean;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println("在初始化之后执行的方法。");return bean;}
}

3.在xml文件中配置相关信息。初始化方式,配置的init-method;最后容器销毁,配置的destroy-method.

<?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 id="orders" class="Collectiona.bean.Orders" init-method="initMethod" destroy-method="destroyMethod"><property name="oname" value=""></property></bean><bean id="myBeanPost" class="Collectiona.bean.MyBeanPost"></bean>
</beans>

4.最后是进行测试输出:

package Collectiona.testSpring;
import Collectiona.bean.Orders;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class demo {public static void main(String[] args) {ClassPathXmlApplicationContext("classpath:Bean4.xml");ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:Bean4.xml");Orders orders = context.getBean("orders",Orders.class);System.out.println("第四步:获取bean的实例对象");System.out.println(orders);context.close();}}

最终输出的结果是:

看完如果对你有帮助,感谢点赞支持!你的支持是我们不懈的动力,愿我们一起加油哦
看看右下角的 “一键三连” ,敢不敢点一下它。O(∩_∩)O

bean的生命周期(最全最细讲解)相关推荐

  1. java 中 bean 的生命周期

    java 中 bean 的生命周期 本篇中会对涉及到的知识点皆做出描述: 首先,我们先了解先虚拟机的类加载机制: 虚拟机把描述类的数据从Class 文件中加载到内存,并对数据进行校验.转换解析和初始化 ...

  2. 带你读懂Spring Bean 的生命周期,嘿,就是玩儿~

    带你读懂Spring Bean 的生命周期,嘿,就是玩儿~ 一.前言 今天我们来说一说 Spring Bean 的生命周期,小伙伴们应该在面试中经常遇到,这是正常现象.因为 Spring Bean 的 ...

  3. IOC容器中bean的生命周期,iocbean生命周期

    原文地址:http://www.bkjia.com/Javabc/1149957.html IOC容器中bean的生命周期,iocbean生命周期 一.Bean的生命周期 Spring IOC容器可以 ...

  4. IOC容器中bean的生命周期

    一.Bean的生命周期 Spring IOC容器可以管理Bean的生命周期,允许在Bean生命周期的特定点执行定制的任务. Spring IOC容器对Bean的生命周期进行管理的过程如下: (1).通 ...

  5. 什么是spring?spring组成模块、spring优缺点、应用场景、bean的生命周期、线程并发问题

    什么是spring 在不同的语境中,Spring 所代表的含义是不同的.下面我们就分别从"广义"和"狭义"两个角度,对 Spring 进行介绍. 广义的 Spr ...

  6. Spring IOC:bean的生命周期与@Autowire(1)

    全系列文章: <Spring IOC:bean的生命周期与@Autowire(1)> <Spring IOC:bean的生命周期与@Autowire(2)> <Sprin ...

  7. Spring容器启动流程+Bean的生命周期【附源码】

    如果对SpringIoc与Aop的源码感兴趣,可以访问参考:https://javadoop.com/,十分详细. 文章目录 Spring容器的启动全流程 Spring容器关闭流程 Bean 的生命周 ...

  8. IOC容器加载过程及Bean的生命周期和后置处理器

    SpringIOC 容器加载过程 第一步:实例化化容器:AnnotationConfigApplicationContext @Configuration @ComponentScan("c ...

  9. 02.IOC容器加载过程及Bean的生命周期和后置处理器

    Spring思维导图 SpringBean加载流程 SpringIOC加载过程-invokeBeanFactoryPostProcessors SpringIOC 容器加载过程 第一步:实例化化容器: ...

  10. Spring学习总结1——bean的生命周期

    为什么80%的码农都做不了架构师?>>>    Spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao...),并且可以维护bea ...

最新文章

  1. android view flipper,安卓控件——ViewFlipper
  2. 性能测试(06)-逻辑控制器
  3. erosa mysql_MySQL协议和canal实现
  4. 游戏党,iQOO Neo5这部手机能玩目前流行的大型手游吗?
  5. STM32 DCMI调试
  6. 有道无术,术可求;有术无道,止于术-----《程序员面试笔试宝典》
  7. SitePoint播客#177:非被动收入
  8. 任务栏优化工具TrueLaunchBar
  9. laravel定时任务设置
  10. deepin - PS CS6 弹出试用结束(解决方案)
  11. 增量式编码器和绝对式编码器区别
  12. 去除word转pdf时的图片黑边
  13. echat3没有数据的时候,如何设置文字提示:“没有数据”
  14. centos 安装 janus
  15. CMMI资质认证是什么?
  16. android 虹软 例子,虹软离线人脸识别源码Android版本
  17. 从中序与后序遍历构造二叉树
  18. 参加SAP培训是否有用?
  19. 探索产品研发流程及步骤
  20. FSMC版本:多驱动器(ILI9486L等)驱动TFTLCD屏幕

热门文章

  1. VS自带反编译DLL工具
  2. 数字阵列麦克风处理技术概述
  3. ubuntu下安装宋体simsun
  4. ubuntu 卸载mysql_Ubuntu16.04彻底卸载MySQL
  5. python中文版下载32位-Python 2 32位
  6. 在word中打出带圈的数字,文字以及其它字符
  7. CentOS6.5 安装Tomcat6
  8. micro usb接口定义图
  9. 如果在网上匿名15分钟
  10. linux网站5秒盾,宝塔面板建站后接入CF自动开启5秒盾证码脚本