使用Spring初始化加载InitializingBean()方法

网友投稿 400 2022-08-31


使用Spring初始化加载InitializingBean()方法

目录Spring初始化加载InitializingBean()1、spring初始化bean有两种方式2、相同点3、不同点4、InitializingBean接口定义的源码如下所示5、由于代码在项目启动的时候会执行afterPropertiesSet()方法6、这个方法将在所有的属性被初始化后调用关于InitializingBean简单使用这是一个Spring组件Filer实现了afterPropertiesSet方法debug启动项目

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、由于代码在项目lGXSWp启动的时候会执行afterPropertiesSet()方法

如果方法中包含修改字段的信息,那么多次启动就会造成多次修改字段的内容。该方法常用的场景是数据库链接中使用。如果多次链接会造成一定的资源浪费。

除了修改字段类型外当然也可以做别的事,如:检查某表是否存在 存在的话里面的某值是否存在 不存在则添加。

6、这个方法将在所有的属性被初始化后调用

但是会在init前调用。如果代码是延迟加载,则马上执行。所以可以在类上加上@Lazy(false)注解,其中添加的内容如下:

import org.springframework.context.lGXSWpannotation.Lazy;

@Lazy(false)

这样spring容器初始化的时候afterPropertiesSet就会被调用,只需要实现InitializingBean接口就行。

关于InitializingBean简单使用

InitializingBean接口为bean提供了初始化执行的方法,即afterProplGXSWpertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。

下面简单示例:

这是一个Spring组件FilelGXSWpr

实现了afterPropertiesSet方法

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

debug启动项目

可以正http://常使用被注入的组件!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Django(part30)--原生的数据库操作方法(django怎么实现从数据库获取)
下一篇:Django(part19)--Django中的应用(Django文档)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~