simple-spring-memcached 注解配置

阅读更多

一、序言

       有了缓存,还是喜欢用注解去使用,本想和spring 写一个类似ehcache 的东西,后来发google 已经提供了spring 和memcache 的 注解配置,那就先拿来用用了~。~。

 

二、基本配置:

       2.1 先把spring 和 memcached 结合起来,创建一个spring-xmemcached.xml 的文件

       


    
        
        
            
                
                    
                        localhost
                    
                    
                        11211
                    
                
                
                    
                        localhost
                    
                    
                        11212
                    
                
            
        
        
        
            
                1
                2
            
        
        
        
        
        
        
            
        
        
        
            
        
        
        
        
        
    
    
    

 

    测试一下:可以操作就表示 基本配置成功了

    

  ApplicationContext context = new ClassPathXmlApplicationContext("spring/spring-xmemcached.xml");
        MemcachedClient client = (MemcachedClient) context.getBean("xmemcachedClient");
        System.out.println(client);
        client.add("name",100,"张三");
        System.out.println(client.get("name"));
        client.delete("name");
        System.out.println(client.get("name"));

    还是可以参考 https://code.google.com/p/xmemcached/wiki/User_Guide_zh

 

 

 三、spring+memcached 注解的试用

       3.1 引入依赖:

             

  
             com.google.code.simple-spring-memcached 
             xmemcached-provider 
            3.5.0
        

 

       3.2 基本配置:

      

 
    
    
    
     
    
    
    
        
            
        
        
            
                
            
        
        
        
            
                
            
        
    
    
    
        
    

 

      3.3 测试一下:我们建立TestDao 和 Test 类,记得在扫描的package 下哦!

      

import com.google.code.ssm.api.ParameterValueKeyProvider;
import com.google.code.ssm.api.ReadThroughSingleCache;
import org.springframework.stereotype.Component;

/**
 * Created by qiqiang on 2014/12/22.
 */
@Component
public class TestDao {
    @ReadThroughSingleCache(namespace = "test", expiration = 30000)
    public long getUserById(@ParameterValueKeyProvider long id) throws Exception{
        System.out.println("没有缓存命中");
        return id;
    }
}

 

   

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring/spring-xmemcached.xml")
public class Test {
    @Autowired
    private TestDao testDao;
    @org.junit.Test
    public void x(){
        try {
            System.out.println( testDao.getUserById(2l)+"------------------------");
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

   

    忘记了,还得加测试的依赖:

   

  
            org.springframework
            spring-test
            3.2.4.RELEASE
            test
        

            junit
            junit
            4.11
            test
        

   

    3.4 OK 就测试完成了,当然你也可以用spring 定义的缓存接口,和 ehcache 类似的啦,看配置:

         为了配套依赖:

       

   
             com.google.code.simple-spring-memcached 
            spring-cache
            3.5.0
        

 

 

    

 
    
    
        
            
                
                    
                    
                    
                    
                    
                    
                
            
        
    
    
    
        
        
            
        
        
            
                
            
        
        
            
                
            
        
    

 
   3.5 现在来看看 这种方式得测试,应该比较熟悉~。~!

     TestDao2 和上面液氧,就改了下名字

@Component
public class TestDao2 {
    @CachePut(value = "defaultCache",key="#id")
    public long getUserById(long id) throws Exception{
        System.out.println("没有缓存命中");
        return id;
    }

    @Cacheable(value = "defaultCache")
    public String getList(String author) throws Exception {
        System.out.println("没有缓存命中");
        return author;
    }
}

    Test,和上面一样

    

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring/spring-xmemcached.xml")
public class Test {
    @Autowired
    private TestDao2 testDao2;
    @org.junit.Test
    public void x(){
        try {
            System.out.println( testDao2.getUserById(2l)+"------------------------");
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

 

    同样可以实现缓存

 

小结:

     1.这里介绍了spring +xmemcached 配置,以及注解的配置,关于注解的一些详细资料下次介绍

     2.由于有namespace 和 时间的控制,使用起来非常方便,集群部署,容错 都比较舒服的~。~,有错误请指出!

     3.上面的来源 大部分还是文档介绍,当翻译下而已,更多的大家可以参考下面资料!

 

源码

https://github.com/ragnor/simple-spring-memcached

文档

https://code.google.com/p/simple-spring-memcached/wiki/Getting_Started

https://code.google.com/p/simple-spring-memcached/wiki/UserGuide

https://code.google.com/p/xmemcached/wiki/User_Guide_zh

别人的例子

http://weblog4j.com/2013/05/31/simple-spring-memcached-spring-caching-abstraction-and-memcached/

你可能感兴趣的:(spring,memcached,cacheManager,Simple,Spring,Memcached)