zoukankan      html  css  js  c++  java
  • Spring Bean初始化之后执行指定方法

    转:

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

    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

  • 相关阅读:
    汉语-汉字:鬲
    汉语-汉字:鬻
    汉语-汉字:軎
    汉语-汉字:辔
    汉语-汉字:燮
    汉语-汉字:夔
    汉语-汉字:鬯、畅
    4-2电子时钟中的运算符重载
    华为OJ:计算字符个数
    POJ 3071 Football 【概率DP】
  • 原文地址:https://www.cnblogs.com/libin6505/p/10775438.html
Copyright © 2011-2022 走看看