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
-
+