bean的生命周期(最全最细讲解)
一、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的生命周期(最全最细讲解)相关推荐
- java 中 bean 的生命周期
java 中 bean 的生命周期 本篇中会对涉及到的知识点皆做出描述: 首先,我们先了解先虚拟机的类加载机制: 虚拟机把描述类的数据从Class 文件中加载到内存,并对数据进行校验.转换解析和初始化 ...
- 带你读懂Spring Bean 的生命周期,嘿,就是玩儿~
带你读懂Spring Bean 的生命周期,嘿,就是玩儿~ 一.前言 今天我们来说一说 Spring Bean 的生命周期,小伙伴们应该在面试中经常遇到,这是正常现象.因为 Spring Bean 的 ...
- IOC容器中bean的生命周期,iocbean生命周期
原文地址:http://www.bkjia.com/Javabc/1149957.html IOC容器中bean的生命周期,iocbean生命周期 一.Bean的生命周期 Spring IOC容器可以 ...
- IOC容器中bean的生命周期
一.Bean的生命周期 Spring IOC容器可以管理Bean的生命周期,允许在Bean生命周期的特定点执行定制的任务. Spring IOC容器对Bean的生命周期进行管理的过程如下: (1).通 ...
- 什么是spring?spring组成模块、spring优缺点、应用场景、bean的生命周期、线程并发问题
什么是spring 在不同的语境中,Spring 所代表的含义是不同的.下面我们就分别从"广义"和"狭义"两个角度,对 Spring 进行介绍. 广义的 Spr ...
- Spring IOC:bean的生命周期与@Autowire(1)
全系列文章: <Spring IOC:bean的生命周期与@Autowire(1)> <Spring IOC:bean的生命周期与@Autowire(2)> <Sprin ...
- Spring容器启动流程+Bean的生命周期【附源码】
如果对SpringIoc与Aop的源码感兴趣,可以访问参考:https://javadoop.com/,十分详细. 文章目录 Spring容器的启动全流程 Spring容器关闭流程 Bean 的生命周 ...
- IOC容器加载过程及Bean的生命周期和后置处理器
SpringIOC 容器加载过程 第一步:实例化化容器:AnnotationConfigApplicationContext @Configuration @ComponentScan("c ...
- 02.IOC容器加载过程及Bean的生命周期和后置处理器
Spring思维导图 SpringBean加载流程 SpringIOC加载过程-invokeBeanFactoryPostProcessors SpringIOC 容器加载过程 第一步:实例化化容器: ...
- Spring学习总结1——bean的生命周期
为什么80%的码农都做不了架构师?>>> Spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao...),并且可以维护bea ...
最新文章
- android view flipper,安卓控件——ViewFlipper
- 性能测试(06)-逻辑控制器
- erosa mysql_MySQL协议和canal实现
- 游戏党,iQOO Neo5这部手机能玩目前流行的大型手游吗?
- STM32 DCMI调试
- 有道无术,术可求;有术无道,止于术-----《程序员面试笔试宝典》
- SitePoint播客#177:非被动收入
- 任务栏优化工具TrueLaunchBar
- laravel定时任务设置
- deepin - PS CS6 弹出试用结束(解决方案)
- 增量式编码器和绝对式编码器区别
- 去除word转pdf时的图片黑边
- echat3没有数据的时候,如何设置文字提示:“没有数据”
- centos 安装 janus
- CMMI资质认证是什么?
- android 虹软 例子,虹软离线人脸识别源码Android版本
- 从中序与后序遍历构造二叉树
- 参加SAP培训是否有用?
- 探索产品研发流程及步骤
- FSMC版本:多驱动器(ILI9486L等)驱动TFTLCD屏幕