From dafdb43c848d5e1859ff22dd27d9d21c92bc169d Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 11 五月 2021 10:02:32 +0800
Subject: [PATCH] update 配置转移到 yml 文件 统一管理

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java |    3 +
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java |   14 +---
 ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java          |   58 ++++++++++++------
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java       |    2 
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java  |   60 +++++++++++++-------
 ruoyi-admin/src/main/resources/application.yml                                  |   26 ++++++++
 6 files changed, 112 insertions(+), 51 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
index 9657081..8a1b74b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
@@ -21,32 +21,54 @@
 
 /**
  * Swagger2鐨勬帴鍙i厤缃�
- * 
- * @author ruoyi
+ *
+ * @author Lion Li
  */
 @Configuration
 @EnableSwagger2WebMvc
 @EnableKnife4j
-public class SwaggerConfig
-{
-    /** 绯荤粺鍩虹閰嶇疆 */
+public class SwaggerConfig {
+    /**
+     * 绯荤粺鍩虹閰嶇疆
+     */
     @Autowired
     private RuoYiConfig ruoyiConfig;
 
-    /** 鏄惁寮�鍚痵wagger */
+    /**
+     * 鏄惁寮�鍚痵wagger
+     */
     @Value("${swagger.enabled}")
     private boolean enabled;
 
-    /** 璁剧疆璇锋眰鐨勭粺涓�鍓嶇紑 */
+    /**
+     * 璁剧疆璇锋眰鐨勭粺涓�鍓嶇紑
+     */
     @Value("${swagger.pathMapping}")
     private String pathMapping;
+
+    /**
+     * 鏍囬
+     */
+    @Value("${swagger.title}")
+    private String title;
+
+    /**
+     * 鎻忚堪
+     */
+    @Value("${swagger.description}")
+    private String description;
+
+    /**
+     * 鐗堟湰
+     */
+    @Value("${swagger.version}")
+    private String version;
 
     /**
      * 鍒涘缓API
      */
     @Bean
-    public Docket createRestApi()
-    {
+    public Docket createRestApi() {
         return new Docket(DocumentationType.SWAGGER_2)
                 // 鏄惁鍚敤Swagger
                 .enable(enabled)
@@ -70,8 +92,7 @@
     /**
      * 瀹夊叏妯″紡锛岃繖閲屾寚瀹歵oken閫氳繃Authorization澶磋姹傚ご浼犻��
      */
-    private List<ApiKey> securitySchemes()
-    {
+    private List<ApiKey> securitySchemes() {
         List<ApiKey> apiKeyList = new ArrayList<ApiKey>();
         apiKeyList.add(new ApiKey("Authorization", "Authorization", "header"));
         return apiKeyList;
@@ -80,8 +101,7 @@
     /**
      * 瀹夊叏涓婁笅鏂�
      */
-    private List<SecurityContext> securityContexts()
-    {
+    private List<SecurityContext> securityContexts() {
         List<SecurityContext> securityContexts = new ArrayList<>();
         securityContexts.add(
                 SecurityContext.builder()
@@ -94,8 +114,7 @@
     /**
      * 榛樿鐨勫畨鍏ㄤ笂寮曠敤
      */
-    private List<SecurityReference> defaultAuth()
-    {
+    private List<SecurityReference> defaultAuth() {
         AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
         AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
         authorizationScopes[0] = authorizationScope;
@@ -107,18 +126,17 @@
     /**
      * 娣诲姞鎽樿淇℃伅
      */
-    private ApiInfo apiInfo()
-    {
+    private ApiInfo apiInfo() {
         // 鐢ˋpiInfoBuilder杩涜瀹氬埗
         return new ApiInfoBuilder()
                 // 璁剧疆鏍囬
-                .title("鏍囬锛氳嫢渚濈鐞嗙郴缁焈鎺ュ彛鏂囨。")
+                .title(title)
                 // 鎻忚堪
-                .description("鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅,鍏蜂綋鍖呮嫭XXX,XXX妯″潡...")
+                .description(description)
                 // 浣滆�呬俊鎭�
                 .contact(new Contact(ruoyiConfig.getName(), null, null))
                 // 鐗堟湰
-                .version("鐗堟湰鍙�:" + ruoyiConfig.getVersion())
+                .version(version)
                 .build();
     }
 }
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 44bc437..8500728 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -119,6 +119,7 @@
 # MyBatis閰嶇疆
 # https://baomidou.com/config/
 mybatis-plus:
+  mapperPackage: com.ruoyi.**.mapper
   # 瀵瑰簲鐨� XML 鏂囦欢浣嶇疆
   mapperLocations: classpath*:mapper/**/*Mapper.xml
   # 瀹炰綋鎵弿锛屽涓猵ackage鐢ㄩ�楀彿鎴栬�呭垎鍙峰垎闅�
@@ -217,6 +218,12 @@
   enabled: true
   # 璇锋眰鍓嶇紑
   pathMapping: /dev-api
+  # 鏍囬
+  title: '鏍囬锛歊uoYi-Vue-Plus鍚庡彴绠$悊绯荤粺_鎺ュ彛鏂囨。'
+  # 鎻忚堪
+  description: '鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅,鍏蜂綋鍖呮嫭XXX,XXX妯″潡...'
+  # 鐗堟湰
+  version: '鐗堟湰鍙�: ${ruoyi-vue-plus.version}'
 
 # 闃叉XSS鏀诲嚮
 xss: 
@@ -227,7 +234,26 @@
   # 鍖归厤閾炬帴
   urlPatterns: /system/*,/monitor/*,/tool/*
 
+threadPoolConfig:
+  # 鏄惁寮�鍚嚎绋嬫睜
+  enabled: false
+  # 鏍稿績绾跨▼姹犲ぇ灏�
+  corePoolSize: 8
+  # 鏈�澶у彲鍒涘缓鐨勭嚎绋嬫暟
+  maxPoolSize: 16
+  # 闃熷垪鏈�澶ч暱搴�
+  queueCapacity: 128
+  # 绾跨▼姹犵淮鎶ょ嚎绋嬫墍鍏佽鐨勭┖闂叉椂闂�
+  keepAliveSeconds: 300
+  # 绾跨▼姹犲鎷掔粷浠诲姟(鏃犵嚎绋嬪彲鐢�)鐨勫鐞嗙瓥鐣�
+  # CallerRunsPolicy 绛夊緟
+  # DiscardOldestPolicy 鏀惧純鏈�鏃х殑
+  # DiscardPolicy 涓㈠純
+  # AbortPolicy 涓
+  rejectedExecutionHandler: CallerRunsPolicy
+
 feign:
+  package: com.ruoyi.**.feign
   # 寮�鍚帇缂�
   compression:
     request:
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
index 1d4dc1f..183c364 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
@@ -1,30 +1,26 @@
 package com.ruoyi.framework.config;
 
-import java.util.TimeZone;
-import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 
+import java.util.TimeZone;
+
 /**
  * 绋嬪簭娉ㄨВ閰嶇疆
  *
- * @author ruoyi
+ * @author Lion Li
  */
 @Configuration
 // 琛ㄧず閫氳繃aop妗嗘灦鏆撮湶璇ヤ唬鐞嗗璞�,AopContext鑳藉璁块棶
 @EnableAspectJAutoProxy(exposeProxy = true)
-// 鎸囧畾瑕佹壂鎻忕殑Mapper绫荤殑鍖呯殑璺緞
-@MapperScan("com.ruoyi.**.mapper")
-public class ApplicationConfig
-{
+public class ApplicationConfig {
     /**
      * 鏃跺尯閰嶇疆
      */
     @Bean
-    public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization()
-    {
+    public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() {
         return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
     }
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java
index df09516..478a450 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FeignConfig.java
@@ -19,7 +19,7 @@
  *
  * @author Lion Li
  */
-@EnableFeignClients("com.ruoyi.**.feign")
+@EnableFeignClients("${feign.package}")
 @Configuration
 @ConditionalOnClass(Feign.class)
 @AutoConfigureBefore(FeignAutoConfiguration.class)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
index 93a202c..bce2150 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import com.ruoyi.framework.mybatisplus.CreateAndUpdateMetaObjectHandler;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -17,6 +18,8 @@
  */
 @EnableTransactionManagement(proxyTargetClass = true)
 @Configuration
+// 鎸囧畾瑕佹壂鎻忕殑Mapper绫荤殑鍖呯殑璺緞
+@MapperScan("${mybatis-plus.mapperPackage}")
 public class MybatisPlusConfig {
 
 	@Bean
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java
index 0d67c22..30d5ef9 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java
@@ -1,44 +1,65 @@
 package com.ruoyi.framework.config;
 
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.ThreadPoolExecutor;
+import com.ruoyi.common.utils.Threads;
 import org.apache.commons.lang3.concurrent.BasicThreadFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import com.ruoyi.common.utils.Threads;
+
+import java.util.concurrent.RejectedExecutionHandler;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * 绾跨▼姹犻厤缃�
  *
- * @author ruoyi
+ * @author Lion Li
  **/
 @Configuration
-public class ThreadPoolConfig
-{
+public class ThreadPoolConfig {
+
     // 鏍稿績绾跨▼姹犲ぇ灏�
-    private int corePoolSize = 50;
+    @Value("${threadPoolConfig.corePoolSize}")
+    private int corePoolSize;
 
     // 鏈�澶у彲鍒涘缓鐨勭嚎绋嬫暟
-    private int maxPoolSize = 200;
+    @Value("${threadPoolConfig.maxPoolSize}")
+    private int maxPoolSize;
 
     // 闃熷垪鏈�澶ч暱搴�
-    private int queueCapacity = 1000;
+    @Value("${threadPoolConfig.queueCapacity}")
+    private int queueCapacity;
 
     // 绾跨▼姹犵淮鎶ょ嚎绋嬫墍鍏佽鐨勭┖闂叉椂闂�
-    private int keepAliveSeconds = 300;
+    @Value("${threadPoolConfig.keepAliveSeconds}")
+    private int keepAliveSeconds;
+
+    // 绾跨▼姹犲鎷掔粷浠诲姟(鏃犵嚎绋嬪彲鐢�)鐨勫鐞嗙瓥鐣�
+    @Value("${threadPoolConfig.rejectedExecutionHandler}")
+    private String rejectedExecutionHandler;
 
     @Bean(name = "threadPoolTaskExecutor")
-    public ThreadPoolTaskExecutor threadPoolTaskExecutor()
-    {
+    @ConditionalOnProperty(prefix = "threadPoolTaskExecutor", name = "enabled", havingValue = "true")
+    public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
         ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
         executor.setMaxPoolSize(maxPoolSize);
         executor.setCorePoolSize(corePoolSize);
         executor.setQueueCapacity(queueCapacity);
         executor.setKeepAliveSeconds(keepAliveSeconds);
-        // 绾跨▼姹犲鎷掔粷浠诲姟(鏃犵嚎绋嬪彲鐢�)鐨勫鐞嗙瓥鐣�
-        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        RejectedExecutionHandler handler;
+        if (rejectedExecutionHandler.equals("CallerRunsPolicy")) {
+            handler = new ThreadPoolExecutor.CallerRunsPolicy();
+        } else if (rejectedExecutionHandler.equals("DiscardOldestPolicy")) {
+            handler = new ThreadPoolExecutor.DiscardOldestPolicy();
+        } else if (rejectedExecutionHandler.equals("DiscardPolicy")) {
+            handler = new ThreadPoolExecutor.DiscardPolicy();
+        } else {
+            handler = new ThreadPoolExecutor.AbortPolicy();
+        }
+        executor.setRejectedExecutionHandler(handler);
         return executor;
     }
 
@@ -46,14 +67,11 @@
      * 鎵ц鍛ㄦ湡鎬ф垨瀹氭椂浠诲姟
      */
     @Bean(name = "scheduledExecutorService")
-    protected ScheduledExecutorService scheduledExecutorService()
-    {
+    protected ScheduledExecutorService scheduledExecutorService() {
         return new ScheduledThreadPoolExecutor(corePoolSize,
-                new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build())
-        {
+                new BasicThreadFactory.Builder().namingPattern("schedule-pool-%d").daemon(true).build()) {
             @Override
-            protected void afterExecute(Runnable r, Throwable t)
-            {
+            protected void afterExecute(Runnable r, Throwable t) {
                 super.afterExecute(r, t);
                 Threads.printException(r, t);
             }

--
Gitblit v1.9.3