JavaEE——Bean的生命周期

目录

1、实例化Bean

2、设置Bean的属性

3、初始化Bean

(1)、执行通知

(2)、初始化的前置方法

(3)、初始化方法

(4)、执行自定义方法

(5)、初始化的后置方法

4、使用Bean

5、销毁Bean

(1)、DestructionAwareBeanPostProcessor接口

(2)、DisposableBean接口

(3)、自定义方法


1、实例化Bean

实例化Bean就是为其分配内存空间。当客户端向容器请求一个尚未初始化的bean时,容器就会调用doCreateBean()方法进行实例化。

2、设置Bean的属性

当Bean的实例创建完成后就会对其进行属性设置,也就是依赖注入,将依赖的Bean复制到当前类的属性上。

3、初始化Bean

实例化和属性设置是 Java 级别的系统"事件",操作过程不可人工干预和修改的。而初始化则是给开发者提供的,可以在实例化之后、类加载完成之前进行自定义"事件"处理。

(1)、执行通知

执行各种Aware通知的方法:BeanNameAware、BeanFactoryAware、ApplicationContextAware等接口方法。通过这些接口可以让我们拿到BeanName、BeanFactory等资源。

(2)、初始化的前置方法

执行BeanPostProcessor的初始化前置方法postProcessBeforelnitialization(),对Bean进行一些自定义的前置处理。

(3)、初始化方法

依赖注入操作之后执行@PostConstruct的初始化方法。

(4)、执行自定义方法

如果有指定init-method()方法,就执行用户自定义的初始化方法

(5)、初始化的后置方法

执行BeanPostProcessor的初始化后置方法

4、使用Bean

初始化完成就表示Bean创建成功,之后就可以使用这个Bean。当该Bean不再需要时,就进行销毁操作。

5、销毁Bean

销毁Bean对象时执行@PreDestroy的销毁方法

(1)、DestructionAwareBeanPostProcessor接口

判断Bean是否实现DestructionAwareBeanPostProcessor接口,如果实现就执行DestructionAwareBeanPostProcessor后置处理器的销毁回调方法。

(2)、DisposableBean接口

判断Bean是否实现DisposableBean接口,如果实现就调用其实现的destroy()方法

(3)、自定义方法

判断这个Bean是否配置自定义的销毁方法,如果有就调用其配置的销毁方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/11145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短视频账号矩阵系统源码开发部署路径

一、短视频批量剪辑的开发逻辑算法 1.视频剪辑之开发算法 自己研发视频剪辑是指通过对视频素材进行剪切、调整、合并等操作,利用后台计算机算法,进行抽帧抽组抽序进行排列以达到对视频内容进行修改和优化的目的。自己研发的视频剪辑工具可以通过后台码…

iOS中的一些锁

多线程在日常开发中能起到性能优化的作用,但是一旦没用好就会造成线程不安全,本文就来讲讲如何保证线程安全 锁 线程安全 当一个线程访问数据的时候,其他的线程不能对其进行访问,直到该线程访问完毕。简单来讲就是在同一时刻&a…

单片机中的通用LED驱动

前言 项目中需要用到很多的LED灯,存在不同的闪烁方式,比如单闪,双闪,快闪,慢闪等等,我需要一个有如下特性的LED驱动 方便的增加不同闪烁模式可以切换闪烁模式增加LED数目不会有太多的改动方便移植&#x…

【C++杂货铺】模板(文末有彩蛋哟)

文章目录 一、泛型编程二、函数模板2.1 函数模板的原理2.2 函数模板的实例化2.3 模板参数的匹配原则 三、类模板四、非类型模板参数五、模板的特化5.1 函数模板特化5.2 类模板特化 六、模板分离编译七、模板总结好书推荐🎁彩蛋 一、泛型编程 📖实现一个…

Spring Boot单元测试入门指南

Spring Boot单元测试入门指南 JUnit是一个成熟和广泛应用的Java单元测试框架,它提供了丰富的功能和灵活的扩展机制,可以帮助开发人员编写高质量的单元测试。通过JUnit,开发人员可以更加自信地进行重构、维护和改进代码,同时提高代…

volley 学习笔记1--发送请求

一、概览 Volley 具有以下优势: 自动网络请求调度。 多个并发网络连接。 透明磁盘和具有标准 HTTP 缓存一致性的内存响应缓存。 支持请求优先级。 取消请求 API。您可以取消单个请求,也可以设置要取消的请求的时间段或范围。 可轻松自定义&#xff…

linux下i2c调试神器i2c-tools安装及使用

i2c-tools介绍 在嵌入式linux开发中,有时候需要确认i2c硬件是否正常连接,设备是否正常工作,设备的地址是多少等等,这里我们就需要使用一个用于测试I2C总线的工具——i2c-tools。 i2c-tools是一个专门调试i2c的开源工具&#xff…

Kafka 入门到起飞系列 - 消费者组管理、位移管理

消费者组 - Consumer Group 上文我们已经讲过消费者组了,我们知道消费组的存在可以保证一个主题下一个分区的消息只会被组内一个消费者消费,从而避免了消息的重复消费 什么是消费组 - Consumer Group? 消费者组是Kafka 提供的可扩展且具有容…

事后多重比较方法

一、案例介绍 由单因素方差分析案例中,为研究郁金对低张性缺氧小鼠存活时间的影响,将36只小鼠随机生成A、B以及 C 三组,每组12个,雌雄各半,分别以10g/kg、20g/kg、40g/kg三种不同剂量的郁金灌胃,各组小鼠均…

从原理到实践,分析 Redisson 分布式锁的实现方案(二)

上篇讲解了如何用 Redis 实现分布式锁的方案,它提供了简单的原语来实现基于Redis的分布式锁。然而,Redis作为分布式锁的实现方式也存在一些缺点。本文将引入Redisson来实现分布式锁。 一、Redisson是什么 Redisson是一个基于Redis的分布式Java框架。它提…

信息安全:网络安全体系 与 网络安全模型.

信息安全:网络安全体系 与 网络安全模型. 网络安全保障是一项复杂的系统工程,是安全策略、多种技术、管理方法和人员安全素质的综合。一般而言,网络安全体系是网络安全保障系统的最高层概念抽象,是由各种网络安全单元按照一定的规…

抖音seo短视频矩阵系统源代码开发技术分享

抖音SEO短视频矩阵系统是一种通过优化技术,提高在抖音平台上视频的排名和曝光率的系统。以下是开发该系统的技术分享: 熟悉抖音平台的算法 抖音平台的算法是通过分析用户的兴趣爱好和行为习惯,对视频进行排序和推荐。因此,开发人员…

Visitor设计模式访问元素方法的问题

Visitor设计模式访问元素方法的问题 GPT给出的答案寻找灵感前置声明Element层次的实例Visitor interface的声明Element interface的声明Element实际类的声明及实现实现一个Visitor客户端代码 实战测试结果 针对C来说,若要实现Visitor设计模式,则会面临循…

SAP安装笔记

1、准备安装介质,SWPM10SP25,51050829_NW750_JavaExport、SAP_HANA_CLIENT、kernel放到/sapcd/NetWeaver目录下 ​​​​​​​ 进入SWPM10SP25执行./sapinst安装 2、待出现 “Open your browser and paste the following URL address to access the G…

上门家政系统开发|上门预约家政小程序定制系统

随着人们生活水平的提高,对于家政服务的需求也越来越高。上门家政小程序的开发为家政服务商家提供了一个全新的经营和服务渠道。本文将介绍上门家政小程序适合的商家以及其优势。   1. 家政公司   家政公司是最直接受益于上门家政小程序开发的商家。通过开发家政…

企业博客资讯如何高效运营起来?

运营一个高效的企业博客资讯需要综合考虑多个因素,包括内容策划、发布频率、优化推广、互动反馈等。下面将从这些方面介绍如何高效运营企业博客资讯。 如何高效运营企业博客资讯 内容策划 首先,需要制定一个明确的内容策略。确定博客的定位和目标受众…

【C语言】指针进阶(二)

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

【UE5 多人联机教程】04-加入游戏

效果 步骤 1. 新建一个控件蓝图,父类为“USC_Button_Standard” 控件蓝图命名为“UMG_Item_Room”,用于表示每一个搜索到的房间的界面 打开“UMG_Item_Room”,在图表中新建一个变量,命名为“Session” 变量类型为“蓝图会话结果…

MB5B在HDB上的性能调优

背景 MB5B是用于查询物料的收发以及现有库存。日常业务查询,通常会按照月份查看某片地区物料的库存以及收发状态。 调优思路 按照客户日常操作的习惯,得到日常操作的数据范围,选出数据量最为突出最有代表性的地区和物料;利用SE30分别运行不同数量级的数据,比如20个门店、…

利用sklearn 实现线性回归、非线性回归

代码: import pandas as pd import numpy as np import matplotlib import random from matplotlib import pyplot as plt from sklearn.preprocessing import PolynomialFeatures from sklearn.linear_model import LinearRegression# 创建虚拟数据 x np.array(r…