最近在搞ehcache发现项目中是bean加载后就去加载了缓存
debug发现所有执行缓存的父类继承了,InitializingBean
百度了一下initializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。
/* (non-Javadoc)
* 向CacheManager注册缓存
*
* @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
*/
public void afterPropertiesSet() throws Exception {
ICache cache = initializeCache();
if (cache != null)
CacheManager.getInstance().regCache(cache.getCacheName(), cache);
}
如果类继承了InitializingBean 在你的bean加载后就会去执行afterPropertiesSet 方法.应该也可以在bean里面配置init-method="方法名",具体区别还未测试
与之相反DisposableBean 里的destroy,同样也可以destroy-method="方法名"