• springboot整合redis


    本文jdk8

    首先在pom中添加缓存有关的依赖:

            <!--缓存配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-cache</artifactId>
            </dependency>
            <!--redis配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-redis</artifactId>
                <version>1.3.5.RELEASE</version>
            </dependency>

    添加配置文件,是redis缓存替换spring默认的缓存:

    package com.bxw.configuration;
    
    import org.springframework.cache.CacheManager;
    import org.springframework.cache.annotation.EnableCaching;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.cache.RedisCacheManager;
    import org.springframework.data.redis.core.RedisTemplate;
    
    @Configuration
    @EnableCaching
    public class RedisConfig {
    
        /**
         * 采用RedisCacheManager作为缓存管理器
         * @param redisTemplate
         * @return
         */
        @Bean
        public CacheManager cacheManager(RedisTemplate redisTemplate){
            return new RedisCacheManager(redisTemplate);
        }
    }

    完成缓存service:

    package com.bxw.service;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.stereotype.Service;
    
    import java.util.Optional;
    import java.util.concurrent.TimeUnit;
    
    @Service
    public class RedisService {
    
        @Autowired
        private StringRedisTemplate stringRedisTemplate;
    
        public void setString(Optional<String> key, Optional<Object> value, Long time){
            this.setObject(key,value,time);
        }
        private void setObject(Optional<String> key, Optional<Object> value, Long time){
            if(key.isPresent() && value.isPresent()){
                String key1 = key.get();
                Object val1 = value.get();
    
                if(val1 instanceof String){
                    String strVal = (String) val1;
                    stringRedisTemplate.opsForValue().set(key1,strVal);
                    if(time != null){
                        stringRedisTemplate.opsForValue().set(key1,strVal,time, TimeUnit.SECONDS);
                    }
                    return;
                }
            }
        }
        public String getValue(Optional<String> key){
            if(key.isPresent()){
                return stringRedisTemplate.opsForValue().get(key.get());
            }
            return null;
        }
    }

    控制层中调用:

     //redis
        @GetMapping("/setString")
        @ResponseBody
        public String setString(String key,String value){
            redisService.setString(Optional.of(key),Optional.of(value),null);
            return "success";
        }
    
        @GetMapping("/getValue")
        @ResponseBody
        public String getValue(String key){
            return redisService.getValue(Optional.of(key));
        }
  • 相关阅读:
    一行JS代码实现的滑动门
    一款JS+CSS打造绝对经典的资讯网站滑动门特效
    【荐】JS封装的一个无限级的下拉树形菜单
    JS+CSS实现漂亮实用的红色导航菜单
    JS+CSS仿网易的选项卡TAB标签样式
    JS+CSS实现的不规则TAB选项卡效果
    jQuery仿FLASH响应鼠标滚动的动感菜单
    纯CSS仿迅雷首页的菜单导航代码
    JS+CSS仿雅虎首页网站快捷入口的切换效果
    【荐】Jquery+CSS打造的泡沫弹出框式的侧边蓝色导航菜单
  • 原文地址:https://www.cnblogs.com/popcornya/p/9048472.html
Copyright © 2020-2023  润新知