说下场景,因为数据量不是很大,200个对象,但使用非常非常频繁,每次数据库读取?不考虑堵塞,从数据库到程序内部,怎么也得耗费20ms左右吧,明显不现实。使用Redis或者其它二级缓存?量上去以后,IO开销依然非常可观。
考虑数据几乎不变,那么,能不能直接用Java对象缓存?每次使用,直接从Spring的IOC容器获取,岂不美哉,结合我上篇博文,貌似不难实现。
OK,废话不多说,直接上代码。
工具类:
@Configuration
public class XXXUtils {
@Resource
private XXXMapper xxxMapper;
public static List<XXX> xxxs;
@PostConstruct
public void init() {
xxxs = xxxMapper.getXxxs();
}
}
同时,你需要修改Mapper文件
@Repository("xxxMapper")
@Configuration
public interface XXXMapper {
List<XXX> getXxxs();
}
PS:不想泄露代码隐私,所以代码都是简写,可能有细节错误,反正就是这个套路了。