zoukankan      html  css  js  c++  java
  • Springboot学习笔记(七)-集成Redis

    redis下载地址

    添加依赖

    <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <version>1.5.10.RELEASE</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
                <version>1.5.10.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.8.9</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <version>1.5.10.RELEASE</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>1.5.10.RELEASE</version>
            </dependency>
    
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <target>1.8</target>
                        <source>1.8</source>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

    RedisApplication

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.scheduling.annotation.EnableScheduling;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    
    @SpringBootApplication
    @EnableScheduling
    @EnableWebMvc
    public class RedisApplication {
        public static void main(String[] args) {
            SpringApplication.run(RedisApplication.class, args);
        }
    }
    

    RedisService

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.data.redis.core.ValueOperations;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    import java.util.Date;
    import java.util.concurrent.TimeUnit;
    
    @Service
    public class RedisService {
    
        public static final String USER_INFO = "userInfo";
        private final StringRedisTemplate redisTemplate;
    
        @Autowired
        public RedisService(StringRedisTemplate redisTemplate) {
            this.redisTemplate = redisTemplate;
        }
    
        public String getToken() {
            return redisTemplate.opsForValue().get(USER_INFO);
        }
    
        public void setToken(String token) {
            redisTemplate.opsForValue().set(USER_INFO, token, 5, TimeUnit.SECONDS);
        }
    }
    

    RedisController

    import com.yan.service.RedisService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class RedisController {
        private final RedisService redisService;
    
        @Autowired
        public RedisController(RedisService redisService) {
            this.redisService = redisService;
        }
    
        @PostMapping(value = "/setToken")
        public String setToken(String token) {
            try {
                redisService.setToken(token);
                return "success";
            } catch (Exception e) {
                e.printStackTrace();
                return "error";
            }
        }
    
        @GetMapping(value = "/getToken")
        public String getToken() {
            return redisService.getToken();
        }
    }
    

    test

    import com.yan.controller.RedisController;
    import org.junit.Assert;
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    import org.springframework.test.web.servlet.MockMvc;
    import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    import org.springframework.web.context.WebApplicationContext;
    
    import java.util.concurrent.TimeUnit;
    
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class RedisTest {
        @Autowired
        WebApplicationContext context;
        @Autowired
        private RedisController service;
        private MockMvc mockMvc;
    
        @Before
        public void setUp() {
            mockMvc = MockMvcBuilders.standaloneSetup(service).build();
        }
    
        @Test
        public void s() throws Exception {
            String contentAsString = mockMvc.perform(post("/setToken").param("token", "yan")).andReturn().getResponse().getContentAsString();
            Assert.assertEquals("success", contentAsString);
        }
    
        @Test
        public void s1() throws Exception {
            Assert.assertEquals("yan", service.getToken());
            TimeUnit.SECONDS.sleep(2);
            Assert.assertEquals("yan", service.getToken());
            TimeUnit.SECONDS.sleep(2);
            Assert.assertEquals("yan", service.getToken());
            TimeUnit.SECONDS.sleep(2);
            Assert.assertEquals(null, service.getToken());
        }
    }
    
  • 相关阅读:
    sqlserver跨数据库查询数据
    sqlserver调用钉钉方法
    SQL Server判断对象是否存在
    再学一次C#(基本类型篇)
    .net core部署到centos官方文档的一点小问题
    C#字符串和byte之间的互相转化(转载出自:https://www.cnblogs.com/liangxiaoking/p/5958456.html)
    30分钟通过Kong实现.NET网关
    Envoy实现.NET架构的网关(五)集成Redis实现限流
    Envoy实现.NET架构的网关(四)集成IdentityServer4实现OAuth2认证
    Envoy实现.NET架构的网关(三)代理GRPC
  • 原文地址:https://www.cnblogs.com/yw0219/p/9271522.html
Copyright © 2011-2022 走看看