使用Spring初始化加载InitializingBean()方法
Spring初始化加载InitializingBean()
1、spring初始化bean有两种方式
1)实现InitializingBean接口,继而实现afterPropertiesSet的方法 ;
2)利用类反射原理,配置加载文件,使用init-method标签直接注入bean。
2、相同点
实现注入bean的初始化。
3、不同点
实现的方式不一致。
接口比配置效率高,但是配置消除了对spring的依赖。而实现InitializingBean接口依然采用对spring的依赖。
4、InitializingBean接口定义的源码如下所示
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.springframework.beans.factory;
public interface InitializingBean {
void afterPropertiesSet() throws Exception;
}该方法在实现之后,会在程序加载完成之后执行。
5、由于代码在项目启动的时候会执行afterPropertiesSet()方法
如果方法中包含修改字段的信息,那么多次启动就会造成多次修改字段的内容。该方法常用的场景是数据库链接中使用。如果多次链接会造成一定的资源浪费。
除了修改字段类型外当然也可以做别的事,如:检查某表是否存在 存在的话里面的某值是否存在 不存在则添加。
6、这个方法将在所有的属性被初始化后调用
但是会在init前调用。如果代码是延迟加载,则马上执行。所以可以在类上加上@Lazy(false)注解,其中添加的内容如下:
import org.springframework.context.annotation.Lazy; @Lazy(false)
这样spring容器初始化的时候afterPropertiesSet就会被调用,只需要实现InitializingBean接口就行。
关于InitializingBean简单使用
InitializingBean接口为bean提供了初始化执行的方法,即afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。
下面简单示例:
这是一个Spring组件Filer

实现了afterPropertiesSet方法
在这个方法中使用了一个被Autowired注入的Spring Bean:

debug启动项目
可以正常使用被注入的组件!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java中的ConcurrentLinkedQueue使用解析
这篇文章主要介绍了Java中的ConcurrentLinkedQueue使用解析,一个基于链接节点的无界线程安全队列,此队列按照 FIFO(先进先出)原则对元素进行排序,队列的头部是队列中时间最长的元素,需要的朋友可以参考下2023-12-12
SpringBoot常见get/post请求参数处理、参数注解校验及参数自定义注解校验详解
这篇文章主要给大家介绍了关于SpringBoot常见get/post请求参数处理、参数注解校验及参数自定义注解校验的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-03-03
EventBus与Spring Event区别详解(EventBus 事件机制,Spring Event事件机制)
这篇文章主要介绍了EventBus与Spring Event区别,需要的朋友可以参考下2020-02-02
Javaweb-HttpServletResponse的sendRedirectch重定向方式
这篇文章主要介绍了Javaweb-HttpServletResponse的sendRedirectch重定向方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-09-09
SpringBoot中的MongoTemplate的各种条件查询示例详解
这篇文章主要介绍了SpringBoot中的MongoTemplate的各种条件查询示例详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友参考下吧2024-01-01


最新评论