Commit ac17cf180598a6eb7154508da773fc55a5834b76

Authored by YunaiV
1 parent 4ed18c0f

优化单元测试,新增 BaseDbUnitTest 和 BaseDbAndRedisUnitTest 基类,解决 SpringBoot 自动配置,导致启动过慢

src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java
@@ -13,7 +13,8 @@ import org.springframework.context.annotation.Configuration; @@ -13,7 +13,8 @@ import org.springframework.context.annotation.Configuration;
13 * @author 芋道源码 13 * @author 芋道源码
14 */ 14 */
15 @Configuration 15 @Configuration
16 -@MapperScan(value = "${yudao.info.base-package}", annotationClass = Mapper.class) 16 +@MapperScan(value = "${yudao.info.base-package}", annotationClass = Mapper.class,
  17 + lazyInitialization = "${mybatis.lazy-initialization:false}") // Mapper 懒加载,目前仅用于单元测试
17 public class MybatisConfiguration { 18 public class MybatisConfiguration {
18 19
19 @Bean 20 @Bean
src/test/java/cn/iocoder/dashboard/BaseDbAndRedisUnitTest.java 0 → 100644
  1 +package cn.iocoder.dashboard;
  2 +
  3 +import cn.iocoder.dashboard.config.RedisTestConfiguration;
  4 +import cn.iocoder.dashboard.framework.datasource.config.DataSourceConfiguration;
  5 +import cn.iocoder.dashboard.framework.mybatis.config.MybatisConfiguration;
  6 +import cn.iocoder.dashboard.framework.redis.config.RedisConfig;
  7 +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
  8 +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
  9 +import org.redisson.spring.starter.RedissonAutoConfiguration;
  10 +import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
  11 +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
  12 +import org.springframework.boot.test.context.SpringBootTest;
  13 +import org.springframework.context.annotation.Import;
  14 +import org.springframework.test.context.ActiveProfiles;
  15 +import org.springframework.test.context.jdbc.Sql;
  16 +
  17 +/**
  18 + * 依赖内存 DB 的单元测试
  19 + *
  20 + * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法
  21 + *
  22 + * @author 芋道源码
  23 + */
  24 +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisUnitTest.Application.class)
  25 +@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件
  26 +@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB
  27 +public class BaseDbAndRedisUnitTest {
  28 +
  29 + @Import({
  30 + // DB 配置类
  31 + DataSourceConfiguration.class, // 自己的 DB 配置类
  32 + DataSourceAutoConfiguration.class, // Spring DB 自动配置类
  33 + DruidDataSourceAutoConfigure.class, // Druid 自动配置类
  34 + // MyBatis 配置类
  35 + MybatisConfiguration.class, // 自己的 MyBatis 配置类
  36 + MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类
  37 + // Redis 配置类
  38 + RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer
  39 + RedisAutoConfiguration.class, // Spring Redis 自动配置类
  40 + RedisConfig.class, // 自己的 Redis 配置类
  41 + RedissonAutoConfiguration.class, // Redisson 自动高配置类
  42 + })
  43 + public static class Application {
  44 + }
  45 +
  46 +}
src/test/java/cn/iocoder/dashboard/BaseDbUnitTest.java 0 → 100644
  1 +package cn.iocoder.dashboard;
  2 +
  3 +import cn.iocoder.dashboard.framework.datasource.config.DataSourceConfiguration;
  4 +import cn.iocoder.dashboard.framework.mybatis.config.MybatisConfiguration;
  5 +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
  6 +import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
  7 +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
  8 +import org.springframework.boot.test.context.SpringBootTest;
  9 +import org.springframework.context.annotation.Import;
  10 +import org.springframework.test.context.ActiveProfiles;
  11 +import org.springframework.test.context.jdbc.Sql;
  12 +
  13 +/**
  14 + * 依赖内存 DB 的单元测试
  15 + *
  16 + * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法
  17 + *
  18 + * @author 芋道源码
  19 + */
  20 +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class)
  21 +@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件
  22 +@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB
  23 +public class BaseDbUnitTest {
  24 +
  25 + @Import({
  26 + // DB 配置类
  27 + DataSourceConfiguration.class, // 自己的 DB 配置类
  28 + DataSourceAutoConfiguration.class, // Spring DB 自动配置类
  29 + DruidDataSourceAutoConfigure.class, // Druid 自动配置类
  30 + // MyBatis 配置类
  31 + MybatisConfiguration.class, // 自己的 MyBatis 配置类
  32 + MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类
  33 + })
  34 + public static class Application {
  35 + }
  36 +
  37 +}
src/test/java/cn/iocoder/dashboard/BaseSpringBootUnitTest.java
@@ -12,6 +12,7 @@ import javax.annotation.Resource; @@ -12,6 +12,7 @@ import javax.annotation.Resource;
12 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) 12 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
13 @ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 13 @ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件
14 @Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB 14 @Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB
  15 +@Deprecated
15 public class BaseSpringBootUnitTest { 16 public class BaseSpringBootUnitTest {
16 17
17 @Resource 18 @Resource
src/test/java/cn/iocoder/dashboard/config/RedisTestConfiguration.java
@@ -8,12 +8,10 @@ import org.springframework.boot.autoconfigure.data.redis.RedisProperties; @@ -8,12 +8,10 @@ import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
8 import org.springframework.boot.context.properties.EnableConfigurationProperties; 8 import org.springframework.boot.context.properties.EnableConfigurationProperties;
9 import org.springframework.context.annotation.Bean; 9 import org.springframework.context.annotation.Bean;
10 import org.springframework.context.annotation.Configuration; 10 import org.springframework.context.annotation.Configuration;
11 -import org.springframework.context.annotation.Lazy;  
12 11
13 import java.io.IOException; 12 import java.io.IOException;
14 13
15 @Configuration(proxyBeanMethods = false) 14 @Configuration(proxyBeanMethods = false)
16 -@Lazy(false) // 禁用懒加载,因为需要保证 Redis Server 必须先启动  
17 @EnableConfigurationProperties(RedisProperties.class) 15 @EnableConfigurationProperties(RedisProperties.class)
18 @AutoConfigureBefore({RedisAutoConfiguration.class, RedissonAutoConfiguration.class}) // 在 Redis 自动配置前,进行初始化 16 @AutoConfigureBefore({RedisAutoConfiguration.class, RedissonAutoConfiguration.class}) // 在 Redis 自动配置前,进行初始化
19 public class RedisTestConfiguration { 17 public class RedisTestConfiguration {
src/test/java/cn/iocoder/dashboard/config/SecurityTestConfiguration.java deleted
1 -package cn.iocoder.dashboard.config;  
2 -  
3 -import org.mockito.Mockito;  
4 -import org.springframework.context.annotation.Bean;  
5 -import org.springframework.context.annotation.Configuration;  
6 -import org.springframework.security.authentication.AuthenticationManager;  
7 -  
8 -@Configuration  
9 -public class SecurityTestConfiguration {  
10 -  
11 - @Bean  
12 - public AuthenticationManager authenticationManager() {  
13 - return Mockito.mock(AuthenticationManager.class);  
14 - }  
15 -  
16 -}  
src/test/java/cn/iocoder/dashboard/modules/infra/service/config/InfConfigServiceTest.java
1 package cn.iocoder.dashboard.modules.infra.service.config; 1 package cn.iocoder.dashboard.modules.infra.service.config;
2 2
3 -import cn.iocoder.dashboard.BaseSpringBootUnitTest; 3 +import cn.iocoder.dashboard.BaseDbUnitTest;
4 import cn.iocoder.dashboard.common.pojo.PageResult; 4 import cn.iocoder.dashboard.common.pojo.PageResult;
5 import cn.iocoder.dashboard.modules.infra.controller.config.vo.InfConfigCreateReqVO; 5 import cn.iocoder.dashboard.modules.infra.controller.config.vo.InfConfigCreateReqVO;
6 import cn.iocoder.dashboard.modules.infra.controller.config.vo.InfConfigExportReqVO; 6 import cn.iocoder.dashboard.modules.infra.controller.config.vo.InfConfigExportReqVO;
@@ -15,6 +15,7 @@ import cn.iocoder.dashboard.util.collection.ArrayUtils; @@ -15,6 +15,7 @@ import cn.iocoder.dashboard.util.collection.ArrayUtils;
15 import cn.iocoder.dashboard.util.object.ObjectUtils; 15 import cn.iocoder.dashboard.util.object.ObjectUtils;
16 import org.junit.jupiter.api.Test; 16 import org.junit.jupiter.api.Test;
17 import org.springframework.boot.test.mock.mockito.MockBean; 17 import org.springframework.boot.test.mock.mockito.MockBean;
  18 +import org.springframework.context.annotation.Import;
18 19
19 import javax.annotation.Resource; 20 import javax.annotation.Resource;
20 import java.util.List; 21 import java.util.List;
@@ -35,7 +36,8 @@ import static org.mockito.Mockito.verify; @@ -35,7 +36,8 @@ import static org.mockito.Mockito.verify;
35 * 36 *
36 * @author 芋道源码 37 * @author 芋道源码
37 */ 38 */
38 -public class InfConfigServiceTest extends BaseSpringBootUnitTest { 39 +@Import(InfConfigServiceImpl.class)
  40 +public class InfConfigServiceTest extends BaseDbUnitTest {
39 41
40 @Resource 42 @Resource
41 private InfConfigServiceImpl configService; 43 private InfConfigServiceImpl configService;
src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysAuthServiceImplTest.java
1 package cn.iocoder.dashboard.modules.system.service.auth; 1 package cn.iocoder.dashboard.modules.system.service.auth;
2 2
3 -import cn.iocoder.dashboard.BaseSpringBootUnitTest; 3 +import cn.iocoder.dashboard.BaseDbUnitTest;
4 import cn.iocoder.dashboard.common.enums.CommonStatusEnum; 4 import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
5 import cn.iocoder.dashboard.framework.security.core.LoginUser; 5 import cn.iocoder.dashboard.framework.security.core.LoginUser;
6 import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; 6 import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO;
7 import cn.iocoder.dashboard.modules.system.service.auth.impl.SysAuthServiceImpl; 7 import cn.iocoder.dashboard.modules.system.service.auth.impl.SysAuthServiceImpl;
  8 +import cn.iocoder.dashboard.modules.system.service.common.SysCaptchaService;
  9 +import cn.iocoder.dashboard.modules.system.service.logger.SysLoginLogService;
8 import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService; 10 import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService;
9 import cn.iocoder.dashboard.modules.system.service.user.SysUserService; 11 import cn.iocoder.dashboard.modules.system.service.user.SysUserService;
10 import cn.iocoder.dashboard.util.AssertUtils; 12 import cn.iocoder.dashboard.util.AssertUtils;
11 import org.junit.jupiter.api.Test; 13 import org.junit.jupiter.api.Test;
12 import org.springframework.boot.test.mock.mockito.MockBean; 14 import org.springframework.boot.test.mock.mockito.MockBean;
  15 +import org.springframework.context.annotation.Import;
  16 +import org.springframework.security.authentication.AuthenticationManager;
13 import org.springframework.security.core.userdetails.UsernameNotFoundException; 17 import org.springframework.security.core.userdetails.UsernameNotFoundException;
14 18
15 import javax.annotation.Resource; 19 import javax.annotation.Resource;
@@ -21,7 +25,13 @@ import static org.junit.jupiter.api.Assertions.*; @@ -21,7 +25,13 @@ import static org.junit.jupiter.api.Assertions.*;
21 import static org.mockito.ArgumentMatchers.eq; 25 import static org.mockito.ArgumentMatchers.eq;
22 import static org.mockito.Mockito.when; 26 import static org.mockito.Mockito.when;
23 27
24 -public class SysAuthServiceImplTest extends BaseSpringBootUnitTest { 28 +/**
  29 + * {@link SysAuthServiceImpl} 的单元测试
  30 + *
  31 + * @author 芋道源码
  32 + */
  33 +@Import(SysAuthServiceImpl.class)
  34 +public class SysAuthServiceImplTest extends BaseDbUnitTest {
25 35
26 @Resource 36 @Resource
27 private SysAuthServiceImpl authService; 37 private SysAuthServiceImpl authService;
@@ -30,6 +40,14 @@ public class SysAuthServiceImplTest extends BaseSpringBootUnitTest { @@ -30,6 +40,14 @@ public class SysAuthServiceImplTest extends BaseSpringBootUnitTest {
30 private SysUserService userService; 40 private SysUserService userService;
31 @MockBean 41 @MockBean
32 private SysPermissionService permissionService; 42 private SysPermissionService permissionService;
  43 + @MockBean
  44 + private AuthenticationManager authenticationManager;
  45 + @MockBean
  46 + private SysCaptchaService captchaService;
  47 + @MockBean
  48 + private SysLoginLogService loginLogService;
  49 + @MockBean
  50 + private SysUserSessionService userSessionService;
33 51
34 @Test 52 @Test
35 public void testLoadUserByUsername_success() { 53 public void testLoadUserByUsername_success() {
src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictDataServiceTest.java
1 package cn.iocoder.dashboard.modules.system.service.dict; 1 package cn.iocoder.dashboard.modules.system.service.dict;
2 2
3 -import cn.iocoder.dashboard.BaseSpringBootUnitTest; 3 +import cn.iocoder.dashboard.BaseDbUnitTest;
4 import cn.iocoder.dashboard.common.enums.CommonStatusEnum; 4 import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
5 import cn.iocoder.dashboard.common.pojo.PageResult; 5 import cn.iocoder.dashboard.common.pojo.PageResult;
6 import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO; 6 import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO;
@@ -17,6 +17,7 @@ import cn.iocoder.dashboard.util.object.ObjectUtils; @@ -17,6 +17,7 @@ import cn.iocoder.dashboard.util.object.ObjectUtils;
17 import com.google.common.collect.ImmutableTable; 17 import com.google.common.collect.ImmutableTable;
18 import org.junit.jupiter.api.Test; 18 import org.junit.jupiter.api.Test;
19 import org.springframework.boot.test.mock.mockito.MockBean; 19 import org.springframework.boot.test.mock.mockito.MockBean;
  20 +import org.springframework.context.annotation.Import;
20 21
21 import javax.annotation.Resource; 22 import javax.annotation.Resource;
22 import java.util.Date; 23 import java.util.Date;
@@ -37,7 +38,8 @@ import static org.mockito.Mockito.*; @@ -37,7 +38,8 @@ import static org.mockito.Mockito.*;
37 * 38 *
38 * @author 芋道源码 39 * @author 芋道源码
39 */ 40 */
40 -public class SysDictDataServiceTest extends BaseSpringBootUnitTest { 41 +@Import(SysDictDataServiceImpl.class)
  42 +public class SysDictDataServiceTest extends BaseDbUnitTest {
41 43
42 @Resource 44 @Resource
43 private SysDictDataServiceImpl dictDataService; 45 private SysDictDataServiceImpl dictDataService;
src/test/java/cn/iocoder/dashboard/modules/system/service/dict/SysDictTypeServiceTest.java
1 package cn.iocoder.dashboard.modules.system.service.dict; 1 package cn.iocoder.dashboard.modules.system.service.dict;
2 2
3 -import cn.iocoder.dashboard.BaseSpringBootUnitTest; 3 +import cn.iocoder.dashboard.BaseDbUnitTest;
4 import cn.iocoder.dashboard.common.enums.CommonStatusEnum; 4 import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
5 import cn.iocoder.dashboard.common.pojo.PageResult; 5 import cn.iocoder.dashboard.common.pojo.PageResult;
6 import cn.iocoder.dashboard.modules.system.controller.dict.vo.type.SysDictTypeCreateReqVO; 6 import cn.iocoder.dashboard.modules.system.controller.dict.vo.type.SysDictTypeCreateReqVO;
@@ -14,6 +14,7 @@ import cn.iocoder.dashboard.util.collection.ArrayUtils; @@ -14,6 +14,7 @@ import cn.iocoder.dashboard.util.collection.ArrayUtils;
14 import cn.iocoder.dashboard.util.object.ObjectUtils; 14 import cn.iocoder.dashboard.util.object.ObjectUtils;
15 import org.junit.jupiter.api.Test; 15 import org.junit.jupiter.api.Test;
16 import org.springframework.boot.test.mock.mockito.MockBean; 16 import org.springframework.boot.test.mock.mockito.MockBean;
  17 +import org.springframework.context.annotation.Import;
17 18
18 import javax.annotation.Resource; 19 import javax.annotation.Resource;
19 import java.util.List; 20 import java.util.List;
@@ -24,7 +25,6 @@ import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*; @@ -24,7 +25,6 @@ import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*;
24 import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; 25 import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals;
25 import static cn.iocoder.dashboard.util.AssertUtils.assertServiceException; 26 import static cn.iocoder.dashboard.util.AssertUtils.assertServiceException;
26 import static cn.iocoder.dashboard.util.RandomUtils.*; 27 import static cn.iocoder.dashboard.util.RandomUtils.*;
27 -import static cn.iocoder.dashboard.util.RandomUtils.randomString;  
28 import static cn.iocoder.dashboard.util.date.DateUtils.buildTime; 28 import static cn.iocoder.dashboard.util.date.DateUtils.buildTime;
29 import static org.junit.jupiter.api.Assertions.*; 29 import static org.junit.jupiter.api.Assertions.*;
30 import static org.mockito.ArgumentMatchers.eq; 30 import static org.mockito.ArgumentMatchers.eq;
@@ -35,7 +35,8 @@ import static org.mockito.Mockito.when; @@ -35,7 +35,8 @@ import static org.mockito.Mockito.when;
35 * 35 *
36 * @author 芋道源码 36 * @author 芋道源码
37 */ 37 */
38 -public class SysDictTypeServiceTest extends BaseSpringBootUnitTest { 38 +@Import(SysDictTypeServiceImpl.class)
  39 +public class SysDictTypeServiceTest extends BaseDbUnitTest {
39 40
40 @Resource 41 @Resource
41 private SysDictTypeServiceImpl dictTypeService; 42 private SysDictTypeServiceImpl dictTypeService;
src/test/resources/application-unit-test.yaml
@@ -3,21 +3,6 @@ spring: @@ -3,21 +3,6 @@ spring:
3 lazy-initialization: true # 开启懒加载,加快速度 3 lazy-initialization: true # 开启懒加载,加快速度
4 banner-mode: off # 单元测试,禁用 Banner 4 banner-mode: off # 单元测试,禁用 Banner
5 5
6 - # 去除的自动配置项  
7 - autoconfigure:  
8 - exclude:  
9 - - org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration # 单元测试,禁用 SpringSecurity  
10 - - org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration # 单元测试,禁用 SpringSecurity  
11 - - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 单元测试,禁用 Quartz  
12 - - com.baomidou.lock.spring.boot.autoconfigure.LockAutoConfiguration # 单元测试,禁用 Lock4j 分布式锁  
13 - - org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration # 单元测试,禁用 Scheduler 定时任务  
14 - - org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration # 项目没有使用 Spring Data,所以禁用配置类,加速启动  
15 -  
16 -# Swagger 接口文档的自动配置(单元测试,禁用 Swagger)  
17 -springfox:  
18 - documentation:  
19 - auto-startup: false  
20 -  
21 --- #################### 数据库相关配置 #################### 6 --- #################### 数据库相关配置 ####################
22 7
23 spring: 8 spring:
@@ -29,6 +14,9 @@ spring: @@ -29,6 +14,9 @@ spring:
29 username: sa 14 username: sa
30 password: 15 password:
31 schema: classpath:sql/create_tables.sql # MySQL 转 H2 的语句,使用 https://www.jooq.org/translate/ 工具 16 schema: classpath:sql/create_tables.sql # MySQL 转 H2 的语句,使用 https://www.jooq.org/translate/ 工具
  17 + druid:
  18 + async-init: true # 单元测试,异步初始化 Druid 连接池,提升启动速度
  19 + initial-size: 1 # 单元测试,配置为 1,提升启动速度
32 20
33 # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 21 # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
34 redis: 22 redis:
@@ -36,17 +24,13 @@ spring: @@ -36,17 +24,13 @@ spring:
36 port: 16379 # 端口(单元测试,使用 16379 端口) 24 port: 16379 # 端口(单元测试,使用 16379 端口)
37 database: 0 # 数据库索引 25 database: 0 # 数据库索引
38 26
39 ---- #################### 定时任务相关配置 #################### 27 +mybatis:
  28 + lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试
40 29
41 -# Quartz 配置项,对应 QuartzProperties 配置类(单元测试,禁用 Quartz) 30 +--- #################### 定时任务相关配置 ####################
42 31
43 --- #################### 配置中心相关配置 #################### 32 --- #################### 配置中心相关配置 ####################
44 33
45 -# Apollo 配置中心  
46 -apollo:  
47 - bootstrap:  
48 - enabled: false # 单元测试,禁用配置中心  
49 -  
50 --- #################### 服务保障相关配置 #################### 34 --- #################### 服务保障相关配置 ####################
51 35
52 # Lock4j 配置项(单元测试,禁用 Lock4j) 36 # Lock4j 配置项(单元测试,禁用 Lock4j)
@@ -63,23 +47,6 @@ resilience4j: @@ -63,23 +47,6 @@ resilience4j:
63 47
64 --- #################### 监控相关配置 #################### 48 --- #################### 监控相关配置 ####################
65 49
66 -# Actuator 监控端点的配置项  
67 -management:  
68 - endpoints:  
69 - enabled-by-default: false  
70 -  
71 -# Spring Boot Admin 配置项  
72 -spring:  
73 - boot:  
74 - admin:  
75 - # Spring Boot Admin Client 客户端的相关配置  
76 - client:  
77 - enabled: false  
78 - # Spring Boot Admin Server 服务端的相关配置  
79 - context-path: /admin # 配置 Spring  
80 -  
81 -# 日志文件配置(不需要配置)  
82 -  
83 --- #################### 芋道相关配置 #################### 50 --- #################### 芋道相关配置 ####################
84 51
85 # 芋道配置项,设置当前项目所有自定义的配置 52 # 芋道配置项,设置当前项目所有自定义的配置
src/test/resources/sql/create_tables.sql
@@ -9,9 +9,9 @@ CREATE TABLE IF NOT EXISTS "inf_config" ( @@ -9,9 +9,9 @@ CREATE TABLE IF NOT EXISTS "inf_config" (
9 "value" varchar(500) NOT NULL DEFAULT '', 9 "value" varchar(500) NOT NULL DEFAULT '',
10 "sensitive" bit NOT NULL, 10 "sensitive" bit NOT NULL,
11 "remark" varchar(500) DEFAULT NULL, 11 "remark" varchar(500) DEFAULT NULL,
12 - "create_by" varchar(64) DEFAULT '', 12 + "creator" varchar(64) DEFAULT '',
13 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 13 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
14 - "update_by" varchar(64) DEFAULT '', 14 + "updater" varchar(64) DEFAULT '',
15 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 15 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
16 "deleted" bit NOT NULL DEFAULT FALSE, 16 "deleted" bit NOT NULL DEFAULT FALSE,
17 PRIMARY KEY ("id") 17 PRIMARY KEY ("id")
@@ -28,9 +28,9 @@ CREATE TABLE IF NOT EXISTS "sys_dept" ( @@ -28,9 +28,9 @@ CREATE TABLE IF NOT EXISTS "sys_dept" (
28 "phone" varchar(11) DEFAULT NULL, 28 "phone" varchar(11) DEFAULT NULL,
29 "email" varchar(50) DEFAULT NULL, 29 "email" varchar(50) DEFAULT NULL,
30 "status" tinyint NOT NULL, 30 "status" tinyint NOT NULL,
31 - "create_by" varchar(64) DEFAULT '', 31 + "creator" varchar(64) DEFAULT '',
32 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 32 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
33 - "update_by" varchar(64) DEFAULT '', 33 + "updater" varchar(64) DEFAULT '',
34 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 34 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
35 "deleted" bit NOT NULL DEFAULT FALSE, 35 "deleted" bit NOT NULL DEFAULT FALSE,
36 PRIMARY KEY ("id") 36 PRIMARY KEY ("id")
@@ -44,9 +44,9 @@ CREATE TABLE IF NOT EXISTS "sys_dict_data" ( @@ -44,9 +44,9 @@ CREATE TABLE IF NOT EXISTS "sys_dict_data" (
44 "dict_type" varchar(100) NOT NULL DEFAULT '', 44 "dict_type" varchar(100) NOT NULL DEFAULT '',
45 "status" tinyint NOT NULL DEFAULT '0', 45 "status" tinyint NOT NULL DEFAULT '0',
46 "remark" varchar(500) DEFAULT NULL, 46 "remark" varchar(500) DEFAULT NULL,
47 - "create_by" varchar(64) DEFAULT '', 47 + "creator" varchar(64) DEFAULT '',
48 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 48 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
49 - "update_by" varchar(64) DEFAULT '', 49 + "updater" varchar(64) DEFAULT '',
50 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 50 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
51 "deleted" bit NOT NULL DEFAULT FALSE, 51 "deleted" bit NOT NULL DEFAULT FALSE,
52 PRIMARY KEY ("id") 52 PRIMARY KEY ("id")
@@ -62,9 +62,9 @@ CREATE TABLE IF NOT EXISTS "sys_role" ( @@ -62,9 +62,9 @@ CREATE TABLE IF NOT EXISTS "sys_role" (
62 "status" tinyint NOT NULL, 62 "status" tinyint NOT NULL,
63 "type" tinyint NOT NULL, 63 "type" tinyint NOT NULL,
64 "remark" varchar(500) DEFAULT NULL, 64 "remark" varchar(500) DEFAULT NULL,
65 - "create_by" varchar(64) DEFAULT '', 65 + "creator" varchar(64) DEFAULT '',
66 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 66 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
67 - "update_by" varchar(64) DEFAULT '', 67 + "updater" varchar(64) DEFAULT '',
68 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 68 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
69 "deleted" bit NOT NULL DEFAULT FALSE, 69 "deleted" bit NOT NULL DEFAULT FALSE,
70 PRIMARY KEY ("id") 70 PRIMARY KEY ("id")
@@ -74,9 +74,9 @@ CREATE TABLE IF NOT EXISTS "sys_role_menu" ( @@ -74,9 +74,9 @@ CREATE TABLE IF NOT EXISTS "sys_role_menu" (
74 "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, 74 "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
75 "role_id" bigint NOT NULL, 75 "role_id" bigint NOT NULL,
76 "menu_id" bigint NOT NULL, 76 "menu_id" bigint NOT NULL,
77 - "create_by" varchar(64) DEFAULT '', 77 + "creator" varchar(64) DEFAULT '',
78 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 78 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
79 - "update_by" varchar(64) DEFAULT '', 79 + "updater" varchar(64) DEFAULT '',
80 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 80 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
81 "deleted" bit NOT NULL DEFAULT FALSE, 81 "deleted" bit NOT NULL DEFAULT FALSE,
82 PRIMARY KEY ("id") 82 PRIMARY KEY ("id")
@@ -93,9 +93,9 @@ CREATE TABLE IF NOT EXISTS "sys_menu" ( @@ -93,9 +93,9 @@ CREATE TABLE IF NOT EXISTS "sys_menu" (
93 "icon" varchar(100) DEFAULT '#', 93 "icon" varchar(100) DEFAULT '#',
94 "component" varchar(255) DEFAULT NULL, 94 "component" varchar(255) DEFAULT NULL,
95 "status" tinyint NOT NULL DEFAULT '0', 95 "status" tinyint NOT NULL DEFAULT '0',
96 - "create_by" varchar(64) DEFAULT '', 96 + "creator" varchar(64) DEFAULT '',
97 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 97 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
98 - "update_by" varchar(64) DEFAULT '', 98 + "updater" varchar(64) DEFAULT '',
99 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 99 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
100 "deleted" bit NOT NULL DEFAULT FALSE, 100 "deleted" bit NOT NULL DEFAULT FALSE,
101 PRIMARY KEY ("id") 101 PRIMARY KEY ("id")
@@ -107,9 +107,9 @@ CREATE TABLE "sys_dict_type" ( @@ -107,9 +107,9 @@ CREATE TABLE "sys_dict_type" (
107 "type" varchar(100) NOT NULL DEFAULT '', 107 "type" varchar(100) NOT NULL DEFAULT '',
108 "status" tinyint NOT NULL DEFAULT '0', 108 "status" tinyint NOT NULL DEFAULT '0',
109 "remark" varchar(500) DEFAULT NULL, 109 "remark" varchar(500) DEFAULT NULL,
110 - "create_by" varchar(64) DEFAULT '', 110 + "creator" varchar(64) DEFAULT '',
111 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 111 "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
112 - "update_by" varchar(64) DEFAULT '', 112 + "updater" varchar(64) DEFAULT '',
113 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 113 "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
114 "deleted" bit NOT NULL DEFAULT FALSE, 114 "deleted" bit NOT NULL DEFAULT FALSE,
115 PRIMARY KEY ("id") 115 PRIMARY KEY ("id")