InitializingBean是spring为bean的初始化提供了一种新的方式,里面只有一个方法afterPropertiesSet,作用就是实现这个接口或者实现了继承InitializingBean的方法的bean都要执行这个方法。
项目中经常使用的一些数据一般我是放在缓存中,减轻数据库压力,也提升性能,我在CacheManager类中写了一个方法,主要逻辑是查询数据库并把数据放到缓存里。想在项目启动时就触发这个方法把数据放入缓存中,这样就用到了spring的InitializingBean。
例:
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
public class CacheManager implements InitializingBean, DisposableBean {
public void refreshCache(){
// 刷新缓存逻辑
// ...
}
@Override
public void afterPropertiesSet() throws Exception {
refreshCache();
}
@Override
public void destroy() throws Exception {
}
}
这样在启动项目时就会调用afterPropertiesSet()方法刷新缓存。
一般配合着DisposableBean一块用,DisposableBean接口和InitializingBean接口一样,为bean提供了释放资源方法的方式,它只包括destroy方法,凡是继承该接口的类,在bean被销毁之前都会执行该方法。