最近在做一个J2EE的分布式项目,多个子系统之间需要通过Web Service进行通信,项目中使用EJB发布WebService。
为了提高系统的响应效率决定给所有的Web Service查询方法返回值添加缓存。要给所有的查询方法统一添加缓存,首先就会想到使用AOP,然后会想到Spring AOP。但是发布成Web Service的EJB是不受Spring管理的,于是想到了EJB中的AOP策略:Interceptor
实现思路如下:
给EJB的实现类添加拦截器
拦截器判断查询方法的返回值是否已在缓存中,如果在则直接返回,否则调用