转:

Spring Bean初始化之后执行指定方法

2017年07月31日 15:59:33 vircens 阅读数:24807
 

Spring Bean初始化之后执行指定方法

在运用Spring进行实际项目开发过程中,经常会有一种需求就是想要在Bean实例化完成后,自动执行指定方法,包括加载初始值,初始化缓存等。通过简单的XML配置或者使用注解即可实现。
本文仅用于记录简单的使用介绍,不阐述详细的技术实现细节,达到抛砖引玉的效果。
  • 1
  • 2

XML配置

如果项目中bean是通过xml配置方式来管理与加载的,可以在XML配置bean时,指定init-method属性即可。示例如下:

<bean id="initMethodTest" class="service.InitMethodTest" init-method="initMethod"/>
  • 1

bean标签中的init-method指定当Spring容器初始化initMethodTest完成后,自动执行InitMethodTest类中的initMethod方法。InitMethodTest如下:

public class InitMethodTest {

    public void initMethod(){
System.out.println(">>>>>>>>>initMethod<<<<<<<<<<<");
} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

创建JUnit单元测试,不进行执行任何方法,仅查看Spring初始化执行效果

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:config/applicationContext.xml"})
public class InitMethodJUnitTest { @Autowired
private InitMethodTest initMethodTest; @Test
public void initMethodTest(){ }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行结果如下:

>>>>>>>>>initMethod<<<<<<<<<<<
  • 1

Spring注解方式

如果项目中bean是通过注解方式管理的,需要在初始化完成后,执行指定方法,仅仅需要在需要执行的方法上添加@PostConstruct注解即可,修改后的JAVA类如下:

@Component
public class InitMethodTest { @PostConstruct
public void initMethod(){
System.out.println(">>>>>>>>>initMethod<<<<<<<<<<<");
} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

另外还可以通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法。

更多请参考:http://blog.csdn.net/heyutao007/article/details/50326793

Spring Bean初始化之后执行指定方法的更多相关文章

  1. ApplicationListener接口,在spring容器初始化后执行的方法

    一.如果我们希望在Spring容器将所有的Bean都初始化完成之后,做一些操作,那么就可以使用ApplicationListener接口,实现ApplicationListener接口中的onAppl ...

  2. spring注解之@PostConstruct在项目启动时执行指定方法

    一.注解解释 Spring的@PostConstruct注解在方法上,表示此方法是在Spring实例化该Bean之后马上执行此方法,之后才会去实例化其他Bean,并且一个Bean中@PostConst ...

  3. jQuery按回车键执行指定方法

    1.按Enter键执行指定方法: //按回车进入页面 $(function(){ $(document).keydown(function(event){ if (event.keyCode == 1 ...

  4. Spring中初始化bean和销毁bean的时候执行某个方法的详解

    关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过注解@PostConstruct  和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 ...

  5. spring 初始化之后执行的方法

    Spring初始化完成后直接执行一个方法,初始化数据(解决方法并执行两次) 在做WEB项目时,经常在项目第一次启动时利用WEB容器的监听.Servlet加载初始化等切入点为数据库准备数据,这些初始化数 ...

  6. spring bean初始化及销毁你必须要掌握的回调方法

    spring bean在初始化和销毁的时候我们可以触发一些自定义的回调操作. 初始化的时候实现的方法 1.通过java提供的@PostConstruct注解: 2.通过实现spring提供的Initi ...

  7. spring bean初始化顺序

    转载:http://blog.csdn.net/heyutao007/article/details/50326793 常用的设定方式有以下三种:通过实现 InitializingBean/Dispo ...

  8. 一次Spring Bean初始化顺序问题排查记录

    最近在使用Springboot的时候需要通过静态的方法获取到Spring容器托管的bean对象,参照一些博文里写的,新建了个类,并实现ApplicationContextAware接口.代码大致如下: ...

  9. 🙈羞,Spring Bean 初始化/销毁竟然有这么多姿势

    文章来源:http://1t.click/bfHN 一.前言 日常开发过程有时需要在应用启动之后加载某些资源,或者在应用关闭之前释放资源.Spring 框架提供相关功能,围绕 Spring Bean ...

随机推荐

  1. python函数练习题

       

  2. Android 沉浸式状态栏完美解决方案

    现在搜索Android 沉浸式状态栏,真的是一堆一堆,写的特别多,但是真正用的舒服的真没有,在这里自己整理一下开发记录 注意,在使用这个步骤过程之前,请把之前设置的代码注释一下 把布局带有androi ...

  3. K60用IRA通过j-link下载失败,解决方法

    K60在用飞思卡尔原厂的例程时,例程编译时没有问题,但是烧写时不成功,出现以下提示,请问该如何解决这个问题?提示1.Miss or malformed flash loader specificati ...

  4. 如何修改Recovery的字符串资源

    前言:在实际的ROM修改中,Recovery的修改还是会经常遇到的,这篇文章主要讲解如何修改Recovery字符串.   首先我们先了解下大概的流程. 1.screen_ui.cpp 中的Screen ...

  5. nginx笔记----解决windows80端口被iis占用

    打开注册表:regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP 数值数据修改成0或者其他 然后重启

  6. vue 导出xlsx表功能

    详细步骤: 1.需要安装三个依赖: npm install -S file-saver xlsx npm install -D script-loader 两个命令行包含三个依赖. 2.项目中src下 ...

  7. VS2017的MVC和Angular联合开发的配置文件作用

    在通过MVC和Angular联合开发项目时,项目里有几个重要的配置文件,下面列出这几个配置文件的分析和比较: 主要配置文件有appsettings.json,tsconfig.json,package ...

  8. python之list和tuple

    https://www.cnblogs.com/evablogs/p/6691743.html list和tuple区别: 相同:均为有序集合 异同:list可变,tuple一旦初始化则不可变 lis ...

  9. SQL Server数据库————增删改查

    --增删改查--增 insert into 表名(列名) value(值列表) --删 delect from 表名 where 条件 --改 update 表名 set 列名=值1,列名2=值2 w ...

  10. kali权限提升之配置不当提权与WCE

    kali权限提升之配置不当提权与WCE 1.利用配置不当提权 2.WCE 3.其他提权 一.利用配置不当提权 与漏洞提权相比更常用的方法 在大部分企业环境下,会有相应的补丁更新策略,因此难以通过相应漏 ...