springboot redis 緩衝對象

來源:互聯網
上載者:User

標籤:autowire   pen   tostring   private   keygen   auth   產生   UI   sel   

只要加入spring-boot-starter-data-redis , springboot 會自動識別並使用redis作為緩衝容器,使用方式如下

gradle加入依賴

    compile("org.springframework.boot:spring-boot-starter-data-redis:${springBootVersion}")

redis configuration 中啟用緩衝

@Configuration@EnableCachingpublic class RedisConfiguration 

redis 自訂key建置規則

@Bean    public KeyGenerator wiselyKeyGenerator() {        return new KeyGenerator() {            @Override            public Object generate(Object target, Method method, Object... params) {                StringBuilder sb = new StringBuilder();                sb.append(target.getClass().getName());                sb.append(":" + method.getName());                for (Object obj : params) {                    sb.append(":" + obj.toString());                }                return sb.toString();            }        };    }

有時候我們需要 使用 redisTemplate, 可以這樣子配置

@Bean    public RedisConnectionFactory redisConnectionFactory() {        return new JedisConnectionFactory();    }    @Bean    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {        RedisTemplate redisTemplate = new RedisTemplate();        redisTemplate.setConnectionFactory(redisConnectionFactory);        return redisTemplate;    }    @Bean    public CacheManager cacheManager(RedisTemplate redisTemplate) {        return new RedisCacheManager(redisTemplate);    }

完整代碼

package cn.xiaojf.today.data.redis.configuration;import org.springframework.cache.CacheManager;import org.springframework.cache.annotation.EnableCaching;import org.springframework.cache.interceptor.KeyGenerator;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.cache.RedisCacheManager;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import java.lang.reflect.Method;/** * redis 緩衝配置 * @author xiaojf 2016/12/7 10:29. */@Configuration@EnableCachingpublic class RedisConfiguration {    @Bean    public KeyGenerator wiselyKeyGenerator() {        return new KeyGenerator() {            @Override            public Object generate(Object target, Method method, Object... params) {                StringBuilder sb = new StringBuilder();                sb.append(target.getClass().getName());                sb.append(":" + method.getName());                for (Object obj : params) {                    sb.append(":" + obj.toString());                }                return sb.toString();            }        };    }    @Bean    public RedisConnectionFactory redisConnectionFactory() {        return new JedisConnectionFactory();    }    @Bean    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {        RedisTemplate redisTemplate = new RedisTemplate();        redisTemplate.setConnectionFactory(redisConnectionFactory);        return redisTemplate;    }    @Bean    public CacheManager cacheManager(RedisTemplate redisTemplate) {        return new RedisCacheManager(redisTemplate);    }}

使用例子

package cn.xiaojf.today.sys.dao.impl;import cn.xiaojf.today.base.dao.impl.BaseDaoImpl;import cn.xiaojf.today.base.model.PageInfo;import cn.xiaojf.today.base.util.Asserts;import cn.xiaojf.today.sys.dao.SysUserDao;import cn.xiaojf.today.sys.repository.SysUserRepository;import cn.xiaojf.today.sys.entity.SysUser;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.cache.annotation.CacheConfig;import org.springframework.stereotype.Repository;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;/** * 使用者資料提供者實作類別 * @author xiaojf 2017/2/9 17:40. */@Repository@CacheConfig(cacheNames = {"sysUserCache"})public class SysUserDaoImpl extends BaseDaoImpl<SysUser> implements SysUserDao {    @Autowired    private SysUserRepository userRepository;    public SysUserDaoImpl() {        super(SysUserRepository.class);    }    @Override//    @Cacheable(key = "#username")    public SysUser getByUsername(String username) {        Asserts.notNull(username,"使用者名稱不可為空");        SysUser user = userRepository.findFirstByUsername(username);        return user;    }}

 

 spring cache的其他使用方式很簡單,可以直接看官網或者百度例子

springboot redis 緩衝對象

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.