今天研究了一下应用在启动的时候,将一些固定的资源加载到缓存中,这样使用的时候会提供很大便利和性能上的提升。我看了一些关于这方面的资料,感觉都很好,这里面我主要说下使用spring框架提供的接口BeanPostProcessor接口来达到这一个目的。
BeanPostProcessor接口有两个方法:
- public Object postProcessBeforeInitialization(Object arg0, String arg1) ,这是bean在加载前执行的方法。
- public Object postProcessAfterInitialization(Object arg0, String arg1),这是bean在加载后执行的方法。
在spring启动到时候,没加载一个bean都会执行实现该接口的类。
下面,就说下如何利用BeanPostProcessor来加载数据入缓存 ,例如下面实现
@Override
public Object postProcessAfterInitialization(Object arg0, String arg1)
throws BeansException {
if(arg0 instanceof IMenuService){ //判断Object是否是该类的bean
List<Menu> list = ((IMenuService) arg0).getAllResource(); 如果是,就执行查询
System.out.println(arg0 + "初始化后=================