From 7770689bea7fb70a575a439f64f27d506ba5fcc2 Mon Sep 17 00:00:00 2001 From: YunaiV <> Date: Sat, 21 Nov 2020 12:48:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Swagger=20Dubbo=20?= =?UTF-8?q?=E5=88=B0=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + .../pom.xml | 60 +++++++++++++++++++ .../springdatarediswithjedis/Application.java | 8 +++ .../config/RedisConfiguration.java | 39 ++++++++++++ .../util/JSONUtil.java | 22 +++++++ .../src/main/resources/application.yml | 11 ++++ .../src/main/resources/redisson.yml | 0 .../springdatarediswithjedis/Test01.java | 47 +++++++++++++++ .../config/TestRedisConfiguration.java | 34 +++++++++++ lab-11-spring-data-redis/pom.xml | 1 + lab-30/《芋道 Dubbo Swagger 快速入门》.md | 1 + pom.xml | 3 +- 12 files changed, 226 insertions(+), 2 deletions(-) create mode 100644 lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/pom.xml create mode 100644 lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/Application.java create mode 100644 lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/config/RedisConfiguration.java create mode 100644 lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/util/JSONUtil.java create mode 100644 lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/resources/application.yml create mode 100644 lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/resources/redisson.yml create mode 100644 lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/test/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/Test01.java create mode 100644 lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/test/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/config/TestRedisConfiguration.java create mode 100644 lab-30/《芋道 Dubbo Swagger 快速入门》.md diff --git a/README.md b/README.md index 9ee72fd2..4211ecb1 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,7 @@ * [《芋道 Spring Cloud 服务网关 Spring Cloud Gateway 入门》](http://www.iocoder.cn/Spring-Cloud/Spring-Cloud-Gateway/?github) 对应 [labx-08-spring-cloud-gateway](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-08-spring-cloud-gateway) * [《芋道 Spring Cloud 链路追踪 SkyWalking 入门》](http://www.iocoder.cn/Spring-Cloud/SkyWalking/?github) 对应 [labx-14](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-14) * [《芋道 Dubbo Admin 快速入门》](http://www.iocoder.cn/Dubbo/Admin/?github) +* [《芋道 Dubbo Swagger 快速入门》](http://www.iocoder.cn/Dubbo/Swagger/?github) 对应 [swagger-dubbo](https://github.com/YunaiV/swagger-dubbo) # Spring Cloud 专栏 @@ -274,6 +275,7 @@ * [《芋道 Spring Boot Dubbo 入门》](http://www.iocoder.cn/Spring-Boot/Dubbo/?github) 对应 [lab-30](https://github.com/YunaiV/SpringBoot-Labs/tree/master/lab-30) * [《芋道 Spring Cloud Alibaba 服务调用 Dubbo 入门》](http://www.iocoder.cn/Spring-Cloud-Alibaba/Dubbo/?github) 对应 [labx-07-spring-cloud-alibaba-dubbo](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-07-spring-cloud-alibaba-dubbo) * [《性能测试 —— Dubbo 基准测试》](http://www.iocoder.cn/Performance-Testing/Dubbo-benchmark/?github) +* [《芋道 Dubbo Swagger 快速入门》](http://www.iocoder.cn/Dubbo/Swagger/?github) 对应 [swagger-dubbo](https://github.com/YunaiV/swagger-dubbo) ## 注册中心 diff --git a/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/pom.xml b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/pom.xml new file mode 100644 index 00000000..2d50408c --- /dev/null +++ b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/pom.xml @@ -0,0 +1,60 @@ + + + + org.springframework.boot + spring-boot-starter-parent + 2.1.3.RELEASE + + + 4.0.0 + + lab-07-spring-data-redis-unit-test + + + + + + org.redisson + redisson-spring-boot-starter + 3.11.3 + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + com.alibaba + fastjson + 1.2.61 + + + + + com.fasterxml.jackson.core + jackson-databind + + + + commons-io + commons-io + 2.6 + + + + + it.ozimov + embedded-redis + 0.7.2 + test + + + + + diff --git a/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/Application.java b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/Application.java new file mode 100644 index 00000000..ac6c60ce --- /dev/null +++ b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/Application.java @@ -0,0 +1,8 @@ +package cn.iocoder.springboot.labs.lab10.springdatarediswithjedis; + +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +//@EnableTransactionManagement +public class Application { +} diff --git a/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/config/RedisConfiguration.java b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/config/RedisConfiguration.java new file mode 100644 index 00000000..a7892072 --- /dev/null +++ b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/config/RedisConfiguration.java @@ -0,0 +1,39 @@ +package cn.iocoder.springboot.labs.lab10.springdatarediswithjedis.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializer; + +@Configuration +public class RedisConfiguration { + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + // 创建 RedisTemplate 对象 + RedisTemplate template = new RedisTemplate<>(); + + // 设置开启事务支持 + template.setEnableTransactionSupport(true); + + // 设置 RedisConnection 工厂。😈 它就是实现多种 Java Redis 客户端接入的秘密工厂。感兴趣的胖友,可以自己去撸下。 + template.setConnectionFactory(factory); + + // 使用 String 序列化方式,序列化 KEY 。 + template.setKeySerializer(RedisSerializer.string()); + + // 使用 JSON 序列化方式(库是 Jackson ),序列化 VALUE 。 + template.setValueSerializer(RedisSerializer.json()); + return template; + } + + // Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); +// ObjectMapper objectMapper = new ObjectMapper();// <1> +//// objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); +//// objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); +// +// jackson2JsonRedisSerializer.setObjectMapper(objectMapper); +// template.setValueSerializer(jackson2JsonRedisSerializer); + +} diff --git a/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/util/JSONUtil.java b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/util/JSONUtil.java new file mode 100644 index 00000000..cea22f21 --- /dev/null +++ b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/util/JSONUtil.java @@ -0,0 +1,22 @@ +package cn.iocoder.springboot.labs.lab10.springdatarediswithjedis.util; + +import com.alibaba.fastjson.JSON; + +/** + * JSON 工具类 + */ +public class JSONUtil { + + public static T parseObject(String text, Class clazz) { + return JSON.parseObject(text, clazz); + } + + public static String toJSONString(Object javaObject) { + return JSON.toJSONString(javaObject); + } + + public static byte[] toJSONBytes(Object javaObject) { + return JSON.toJSONBytes(javaObject); + } + +} diff --git a/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/resources/application.yml b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/resources/application.yml new file mode 100644 index 00000000..742b2ad3 --- /dev/null +++ b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/resources/application.yml @@ -0,0 +1,11 @@ +spring: + # 对应 RedisProperties 类 + redis: + host: 127.0.0.1 + port: 6379 +# password: # Redis 服务器密码,默认为空。生产中,一定要设置 Redis 密码! + database: 0 # Redis 数据库号,默认为 0 。 + timeout: 0 # Redis 连接超时时间,单位:毫秒。 + # 对应 RedissonProperties 类 +# redisson: +# config: classpath:redisson.yml # 具体的每个配置项,见 org.redisson.config.Config 类。 diff --git a/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/resources/redisson.yml b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/main/resources/redisson.yml new file mode 100644 index 00000000..e69de29b diff --git a/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/test/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/Test01.java b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/test/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/Test01.java new file mode 100644 index 00000000..98f573d2 --- /dev/null +++ b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/test/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/Test01.java @@ -0,0 +1,47 @@ +package cn.iocoder.springboot.labs.lab10.springdatarediswithjedis; + +import cn.iocoder.springboot.labs.lab10.springdatarediswithjedis.config.TestRedisConfiguration; +import org.junit.Assert; +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.dao.DataAccessException; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = TestRedisConfiguration.class) +public class Test01 { + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + @Autowired + private RedisTemplate redisTemplate; + +// @Autowired +// private RedisServer server; + + @Test + public void test01() { + // 写入 + stringRedisTemplate.opsForValue().set("yunai", "shuai"); + // 读取 + String value = stringRedisTemplate.opsForValue().get("yunai"); + Assert.assertEquals("值不匹配", "shuai", value); + + // 测试重启后读取 + redisTemplate.execute(new RedisCallback() { + @Override + public Object doInRedis(RedisConnection connection) throws DataAccessException { + connection.flushDb(); + return ""; + } + }); + } + +} diff --git a/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/test/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/config/TestRedisConfiguration.java b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/test/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/config/TestRedisConfiguration.java new file mode 100644 index 00000000..32086eef --- /dev/null +++ b/lab-11-spring-data-redis/lab-07-spring-data-redis-unit-test/src/test/java/cn/iocoder/springboot/labs/lab10/springdatarediswithjedis/config/TestRedisConfiguration.java @@ -0,0 +1,34 @@ +package cn.iocoder.springboot.labs.lab10.springdatarediswithjedis.config; + +import org.springframework.boot.autoconfigure.data.redis.RedisProperties; +import org.springframework.boot.test.context.TestConfiguration; +import redis.embedded.RedisServer; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; + +@TestConfiguration +public class TestRedisConfiguration { + + private RedisServer redisServer; + + public TestRedisConfiguration(RedisProperties redisProperties) { + this.redisServer = new RedisServer(redisProperties.getPort()); + } + +// @Bean +// public RedisServer redisServer() { +// return redisServer; +// } + + @PostConstruct + public void postConstruct() { + redisServer.start(); + } + + @PreDestroy + public void preDestroy() { + redisServer.stop(); + } + +} diff --git a/lab-11-spring-data-redis/pom.xml b/lab-11-spring-data-redis/pom.xml index 7c644123..4eb256c8 100644 --- a/lab-11-spring-data-redis/pom.xml +++ b/lab-11-spring-data-redis/pom.xml @@ -14,6 +14,7 @@ lab-07-spring-data-redis-with-jedis lab-07-spring-data-redis-with-redisson + lab-07-spring-data-redis-unit-test diff --git a/lab-30/《芋道 Dubbo Swagger 快速入门》.md b/lab-30/《芋道 Dubbo Swagger 快速入门》.md new file mode 100644 index 00000000..4be20bd8 --- /dev/null +++ b/lab-30/《芋道 Dubbo Swagger 快速入门》.md @@ -0,0 +1 @@ + diff --git a/pom.xml b/pom.xml index e9c2abdd..941039a9 100644 --- a/pom.xml +++ b/pom.xml @@ -76,8 +76,7 @@ - lab-69-proxy - +