读书人

Spring中AOP兑现EHCache的整合(一)

发布时间: 2012-09-22 21:54:54 作者: rapoo

Spring中AOP实现EHCache的整合(一)

?????????? 在项目中使用缓存我OSCache,今天有时间将所有的EHCache的缓存的应用关注一下。首先我们看看Spring和EHCache采用AOP实现的缓存实现。

?

1.首先使用EHCache编写EHCache的配置文件。

?2.编写AOP的方法拦截器,此处采用环绕通知的方式实现方法拦截。

?

3.Spring的关于缓存的配置类似事物的配置:

package com.easyway.ecache.service;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;  /**   * 这里使用了ehcache与spring结合,这里并没用用到数据库,用spring只是用来管理bean, * 这里用ehcache就相当于数据库,存放对象信息   *  @author longgangbai */    @SuppressWarnings({"unchecked"})   public class HelloEhcacheSpring{       public static void main(String[] args) {           ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:applicationContext.xml");                      TicketService ticketSrv = (TicketService) context.getBean("ticketService");                //配置了spring就可以从配置文件里找到对应的接口实现类,再生成实例对象,以完成业务处理       String srvName0=ticketSrv.testMethod();        //获取初始化服务端名称    System.out.println("srvName0="+srvName0);        //设置存储的名称    ticketSrv.setServiceName("ticketService");        String srvName1=ticketSrv.testMethod();        //获取服务端名称    System.out.println("srvName1="+srvName1);        //修改服务名称但是不缓存    ticketSrv.updateMethod();        String srvName2=ticketSrv.testMethod();        //获取服务端名称来源自缓存注意观察        System.out.println("srvName2="+srvName2);                  }       }  

?

6.测试结果:

没走缓存,直接调用TestService.testMethod()

打印信息如下:
set into cache
out cache
srvName0=china
out cache
srvName1=china
updateMethod
out cache
srvName2=china

?

读书人网 >软件架构设计

热点推荐