正文
如何在项目启动时就执行特定方法
- 方法上加注解@PostConstruct
@Compant
public class InitDemo{
@PostConstruct
public void init(){
//项目启动就会执行这个方法
doSomething();
}
}
2.xml配置init-method
<bean id="InitDemo" class="com.xxx.InitDemo" scope="singleton" init-method="init">
</bean>
3.实现InitializingBean接口,重写afterPropertiesSet方法
@Component
public class InitDemo implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
//doSomeThing
}
总结
- spring bean的初始化执行顺序:构造方法 -->
@PostConstruct
注解的方法 -->afterPropertiesSet
方法 -->init-method
指定的方法。具体可以参考例子 afterPropertiesSet
通过接口实现方式调用(效率上高一点),@PostConstruct
和init-method
都是通过反射机制调用
参考
Spring Bean 初始化之InitializingBean, init-method 和 PostConstruct