SpringBoot - InitializingBean的作用是什么?

InitializingBean在项目中的使用 最近做项目需要在项目初始化前加载数据进内存,用到了InitializingBean接口,做一些必要的笔记,一来是对自己学习的知识的巩固,二来对有同样问题的人有参考作用 文章目录一 使用场景二 举例三 拓展四 总结 一 使用场景 最近在项目中需要在项目初始化的时候,对一些常用数据进行缓存,我的第一反应是监听器,所以使用了java的ServletContextListener全局异常监听器,但是出现了一个问题,就是项目使用的spring,而ServletContextListener监听器是监听的tom. 阅读详情

作用

InitializingBean的作用是Bean注入到Spring容器且初始化后,执行特定业务化的操作。Spring允许容器中的Bean,在Bean初始化完成后或者Bean销毁前,执行特定业务化的操作,常用的实现方式有以下三种:

  • 通过实现InitializingBean/DisposableBean接口来处理初始化后/销毁前的操作;
  • 通过标签的init-method/destroy-method属性处理初始化后/销毁前的操作;
  • 在指定方法上加上@PostConstruct或@PreDestroy注解来处理初始化后/销毁前的操作。

实现

如果采用实现InitializingBean接口的方式去执行特定业务化的操作,则需要重写afterPropertiesSet这仅有的一个方法。

代码

package com.hadoopx.drools;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.StringUtils;

@Slf4j
@Data
public class KieAccessor implements InitializingBean {
    private String path;
    private String mode;
    private Long update;
    private String listener;
    private String verify;

    @Override
    public void afterPropertiesSet() throws Exception {

        if (StringUtils.isEmpty(path)) {
            log.error("PLEASE SET THE RULE'S PATH: (spring.drools.path = XXX).");
        }
    }
}
springboot工具类 ClassPathResource 在类路径下读取资源 public final String getPath() public boolean exists() public InputStream getInputStream() WebUtils 获取web资源工具类 public static String getRealPath(ServletContext servletContext... 阅读详情

相关推荐

【Spring源码】23. 执行初始化逻辑:initializeBean()

遍历该工厂创建的bean的BeanPostProcessors,依次调用当前遍历到的BeanPostProcessor的postProcessBeforeInitialization()方法(这个方法会在初始化Bean前进行调用),将当前BeanPostProcessor应用到给定的Bean实例(由于Bean已经填充了属性,返回的可能是原始Bean的包装器)结果是执行到输出行前,代码停在了initializeBean()方法的断点处,点击继续,执行了输出操作,接着就直接结束了,也就是说,我。

aqin1012的博客 954

Spring中的InitializingBean的使用详解

文章目录一、InitializingBean作用二、InitializingBean扩展 写在前面: 我是「境里婆娑」。我还是从前那个少年,没有一丝丝改变,时间只不过是考验,种在心中信念丝毫未减,眼前这个少年,还是最初那张脸,面前再多艰险不退却。 写博客的目的就是分享给大家一起学习交流,如果您对 Java感兴趣,可以关注我,我们一起学习。 一、InitializingBean作用 InitializingBean简介: InitializingBean是Spring提供的拓展性接口,Initializi

境里婆娑 2万+

不只是CPU主频:深入解析英飞凌Aurix TC3xx各外设时钟树(CAN、以太网、Flash时序如何配置)

本文深入解析英飞凌Aurix TC3xx系列微控制器的外设时钟树配置,涵盖CAN、以太网和Flash时序的优化方法。通过详细分析时钟系统架构、关键外设配置及多外设协同设计策略,帮助工程师实现高性能汽车电子控制单元(ECU)开发。特别关注系统时钟的灵活配置与EMC优化技巧,提升系统实时性和可靠性。

weixin_29189373的博客 401

InitializingBean的作用

转自:https://blog.youkuaiyun.com/maclaren001/article/details/37039749 InitializingBean接口 InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。 测试程序如下: import org.springfr...

fyedu的专栏 9924

stm32F103定时器使用方法

文章目录1、STM32的Timer简介2、普通定时器TIM2-TIM52.1 时钟来源2.2 计数器模式2.3 编程步骤3、程序源代码4、总结 1、STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8个定时器。 其中TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟

weixin_43582209的博客 4515

高精度计算Π的值(C语言)

题目要求 限制使用双向链表作存储结构,请根据用户输入的一个整数(该整数表示精确到小数点后的位数,可能要求精确到小数点后500位),高精度计算PI值。可以利用反三角函数幂级展开式来进行计算。 输入5 输出3.14159 思路分析 反三角函数幂级展开式 由公式可以看出,只要计算出来每一个R(n)的值再相加取二倍就可以得到Π的值。 经过推算,要是令R(1)=2,只需要将每个R(n),相加即可。 因...

weixin_46251155的博客 8033

Spring Boot学习笔记(七)Spring 中 InitializingBean 作用(如何在项目初始化时对常用数据进行缓存)

一、InitializingBean 的作用 InitializingBean作为一个接口,只有一个需要重写的方法 @Compoments public class LearnClass implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { System.out.println("成功调用afterPropertiesSet"); } } Sp

TUTsmile的博客 3175

工作笔记05:imu、底盘车轮、单激光雷达外参校准(基于hdl_graph_slam建图和定位)

目录1. imu 校准1.1 IMU型号1.2 坐标定义1.2.1 大地坐标系(WGS84)1.2.2 当地地理坐标系(ENU)1.2.3 传感器坐标轴定义1.3 传感器校准2. 底盘车辆参数配置3. 单激光雷达校准参考文献 1. imu 校准 1.1 IMU型号 阅读IMU产品说明书,获得如下信息: Yesense YIS300 系列惯性传感系统 YIS300 系列包含: YIS300-U 惯性测量单元(IMU):输出经过校准的加速度和角速度值,同时也能够输出磁场强度信息。 YIS300-V 垂直参考系

穿林需独行的博客 4203

Spring Boot 中的 InitializingBean:Bean 初始化背后的故事

是 Spring 框架提供的一个接口,它允许 Bean 在初始化阶段执行自定义逻辑。当 Spring 容器完成 Bean 的属性注入后,会调用接口的方法。资源初始化:加载配置文件、初始化缓存、建立数据库连接等。状态初始化:设置 Bean 的初始状态,例如标志位、计数器等。依赖检查:验证依赖的 Bean 是否可用。自定义初始化:执行其他需要在 Bean 初始化完成后执行的操作。

十二的博客 1572

基于DPABI和SPM12的任务态fMRI分析笔记1——预处理

前言 原理简介 预处理

Sophia2023的博客 1万+

Win11 24H2家庭版共享打印机失败?别慌,一个批处理脚本搞定所有设置

本文提供了Win11 24H2家庭版共享打印机失败的解决方案,通过一个批处理脚本自动修复所有设置问题。脚本包含安装组策略组件、修改关键注册表项等操作,帮助用户快速恢复打印机共享功能,适用于普通家庭用户。

weixin_30632089的博客 423

SpringBoot 定时任务的两种实现方法(Scheduled和quartz)以及InitializingBean接口的作用

开发中肯定会遇到需要跑job的情况,这里介绍两种实现job方式,一种是boot自带的Scheduled,另一种是增加依赖的quartz.当然,每个框架都是博大精深的,这里只是简单实现。别问,问就是我也是小菜鸡 两者的不同点 精确度和功能 Quartz可以通过cron表达式精确到特定时间执行,而Scheduled不能。 Quartz拥有Scheduled所有的功能,而Scheduled则没有。 任务类的数量 Quartz每次执行都创建一个新的任务类对象。 Scheduled则每次使用同一个任务类对象。

Dxmonster的博客 689

Open3D 三维重建-Delaunay Triangulation (德劳内三角剖分)

德劳内三角剖分(Delaunay Triangulation)是一种用于从一组点生成三角形网格的算法。它的特点是使得生成的三角形尽量接近等边三角形,即最大化最小角度,避免生成细长的三角形。

纵马踏花向自由 2502

SpringBoot - @PostConstruct、InitializingBean、 ApplicationRunner 和 CommandLineRunner的执行顺序

@PostConstruct > InitializingBean > ApplicationRunner > CommandLineRunner

JavaEE菜鸟 574

Android 9.0 延时开机动画解决首次开机黑屏和去掉android正在启动的提示框

在9.0的系统产品rom定制化开发中,在一些产品中会出现在首次开机的时候,由于在开机动画播放完以后会出现几秒短暂的黑屏情况,然后进入默认Launcher,这在产品体验上 也是感觉到有点差,所以会要求在去掉这个首次开机黑屏的效果,和在启动过程中的 android is starting这个提示框的这些效果优化,接下来就分析下相关功能, 然后实现这个功能的开发

安卓兼职framework和app工程师的博客 3246

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

@PostConstruct、InitializingBean、CommandLineRunner、ApplicationRunner加载顺序说明

@PostConstruct、InitializingBean、CommandLineRunner、ApplicationRunner加载顺序

weixin_40511641的博客 924

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深入浅出spring boot2.x 学习笔记(四) Bean的生命周期和作用域

Bean的生命周期 ioc容器中bean的生命周期分为四个部分: Bean的定义 Bean的初始化 Bean的生存期 Bean销毁 bean的定义过程        容器启动时,sprin

qq_27675139的博客 1170

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【SpringBoot】SpringBoot源码解析第四章 SpringBoot的Bean接口

SpringBoot的bean接口解析

qq_45797138的博客 1250

SpringBoot常用的扩展点及使用场景

ApplicationContextAware @Component public class ApplicationContextHolder implements ApplicationContextAware { private static ApplicationContext context; @Override public void setApplicationContext(@NonNull ApplicationContext applicationContext

ROAOR1的博客 390

springboot初始化逻辑_Springboot项目资源初始化操作常用方法

1、CommandLineRunner、ApplicationListenerSpringBoot提供了CommandLineRunner和ApplicationRunner接口。当接口有多个实现类时,提供了@order注解实现自定义执行顺序,也可以实现Ordered接口来自定义顺序。两者的区别在于:ApplicationRunner中run方法的参数为ApplicationArguments,而...

weixin_39923599的博客 178

spring循环依赖解决方案

最优方案:从根本上解决循环依赖的最佳做法是重新审视和设计你的代码结构,确保组件之间的依赖关系是清晰且单向的。这通常意味着需要对业务逻辑进行重构,使得每个服务或组件只依赖于其他组件,而不会形成闭环。

聚焦于深度解析最新的编程语言特性、框架升级、架构设计、开发工具和最佳实践,涵盖Web前端(如Vue3, React, Angular等)、后端开发(如Node.js, Java, Python等)、移动端开发(iOS, Android原生及跨平台开发) 5万+

SpringBoot面试题08-BeanPostProcessor

关键词内容时机Bean 初始化前后目的对 Bean 进行加工/增强典型用途AOP、注入逻辑、做统一处理必记Spring 给你再加工 Bean 的机会BeanPostProcessor = 统一增强 + 不改源码 + 自动代理。只要你的业务逻辑具备以下特点:通用性强(不是某一个类独有)横切性(和业务逻辑本身没关系)需要统一自动执行那么就应该:使用BeanPostProcessor + 代理(也可以用 @Aspect 更友好)

qq_31532983的博客 847

Springboot项目启动成功后可通过五种方式继续执行

项目初始化完毕后,才会调用方法,提供服务。

yubin1285570923的博客 727

springboot初始化资源(bean)的一些总结

自我总结

weixin_44874402的博客 646

springboot中@PostConstruct注解使用详解

是 Spring 中用于在 Bean 初始化完成后执行一些初始化逻辑的注解。它通常用于在依赖注入完成后执行一些必要的初始化操作,如资源加载、配置初始化等。相比于其他初始化方式,更加简洁直观,推荐在大多数场景下使用。

2509_93951729的博客 773
上一篇: SpringBoot - 如何查看Spring上下文中加载的Bean
下一篇: SpringBoot - XXXAware相关的接口使用场景是什么?
cloneme01
博客等级 码龄20年 2万+粉丝 248原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cloneme01

谢谢您的支持与鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值