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