update 优化 所有 properties 文件改为注解启用

This commit is contained in:
疯狂的狮子Li 2023-01-20 12:33:55 +08:00
parent 27df5aba2f
commit 558d76c6bb
18 changed files with 31 additions and 43 deletions

View File

@ -3,9 +3,9 @@ package com.ruoyi.common.core.config;
import com.ruoyi.common.core.config.properties.ThreadPoolProperties; import com.ruoyi.common.core.config.properties.ThreadPoolProperties;
import com.ruoyi.common.core.utils.Threads; import com.ruoyi.common.core.utils.Threads;
import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@ -19,6 +19,7 @@ import java.util.concurrent.ThreadPoolExecutor;
* @author Lion Li * @author Lion Li
**/ **/
@AutoConfiguration @AutoConfiguration
@EnableConfigurationProperties(ThreadPoolProperties.class)
public class ThreadPoolConfig { public class ThreadPoolConfig {
/** /**
@ -26,12 +27,9 @@ public class ThreadPoolConfig {
*/ */
private final int core = Runtime.getRuntime().availableProcessors() + 1; private final int core = Runtime.getRuntime().availableProcessors() + 1;
@Autowired
private ThreadPoolProperties threadPoolProperties;
@Bean(name = "threadPoolTaskExecutor") @Bean(name = "threadPoolTaskExecutor")
@ConditionalOnProperty(prefix = "thread-pool", name = "enabled", havingValue = "true") @ConditionalOnProperty(prefix = "thread-pool", name = "enabled", havingValue = "true")
public ThreadPoolTaskExecutor threadPoolTaskExecutor() { public ThreadPoolTaskExecutor threadPoolTaskExecutor(ThreadPoolProperties threadPoolProperties) {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(core); executor.setCorePoolSize(core);
executor.setMaxPoolSize(core * 2); executor.setMaxPoolSize(core * 2);

View File

@ -1,13 +1,12 @@
package com.ruoyi.common.core.config; package com.ruoyi.common.core.config;
import jakarta.validation.Validator;
import org.hibernate.validator.HibernateValidator; import org.hibernate.validator.HibernateValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
import jakarta.validation.Validator;
import java.util.Properties; import java.util.Properties;
/** /**
@ -18,14 +17,11 @@ import java.util.Properties;
@AutoConfiguration @AutoConfiguration
public class ValidatorConfig { public class ValidatorConfig {
@Autowired
private MessageSource messageSource;
/** /**
* 配置校验框架 快速返回模式 * 配置校验框架 快速返回模式
*/ */
@Bean @Bean
public Validator validator() { public Validator validator(MessageSource messageSource) {
LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean(); LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean();
// 国际化 // 国际化
factoryBean.setValidationMessageSource(messageSource); factoryBean.setValidationMessageSource(messageSource);

View File

@ -2,7 +2,6 @@ package com.ruoyi.common.core.config.properties;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/** /**
* 线程池 配置属性 * 线程池 配置属性
@ -10,7 +9,6 @@ import org.springframework.stereotype.Component;
* @author Lion Li * @author Lion Li
*/ */
@Data @Data
@Component
@ConfigurationProperties(prefix = "thread-pool") @ConfigurationProperties(prefix = "thread-pool")
public class ThreadPoolProperties { public class ThreadPoolProperties {

View File

@ -21,6 +21,7 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import java.util.ArrayList; import java.util.ArrayList;
@ -35,15 +36,15 @@ import java.util.Set;
*/ */
@RequiredArgsConstructor @RequiredArgsConstructor
@AutoConfiguration(before = SpringDocConfiguration.class) @AutoConfiguration(before = SpringDocConfiguration.class)
@EnableConfigurationProperties(SwaggerProperties.class)
@ConditionalOnProperty(name = "swagger.enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(name = "swagger.enabled", havingValue = "true", matchIfMissing = true)
public class SwaggerConfig { public class SwaggerConfig {
private final SwaggerProperties swaggerProperties;
private final ServerProperties serverProperties; private final ServerProperties serverProperties;
@Bean @Bean
@ConditionalOnMissingBean(OpenAPI.class) @ConditionalOnMissingBean(OpenAPI.class)
public OpenAPI openApi() { public OpenAPI openApi(SwaggerProperties swaggerProperties) {
OpenAPI openApi = new OpenAPI(); OpenAPI openApi = new OpenAPI();
// 文档基本信息 // 文档基本信息
SwaggerProperties.InfoProperties infoProperties = swaggerProperties.getInfo(); SwaggerProperties.InfoProperties infoProperties = swaggerProperties.getInfo();

View File

@ -9,7 +9,6 @@ import io.swagger.v3.oas.models.tags.Tag;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty; import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
@ -19,7 +18,6 @@ import java.util.List;
* @author Lion Li * @author Lion Li
*/ */
@Data @Data
@Component
@ConfigurationProperties(prefix = "swagger") @ConfigurationProperties(prefix = "swagger")
public class SwaggerProperties { public class SwaggerProperties {

View File

@ -2,7 +2,6 @@ package com.ruoyi.common.mail.config.properties;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/** /**
* JavaMail 配置属性 * JavaMail 配置属性
@ -10,7 +9,6 @@ import org.springframework.stereotype.Component;
* @author Michelle.Chung * @author Michelle.Chung
*/ */
@Data @Data
@Component
@ConfigurationProperties(prefix = "mail") @ConfigurationProperties(prefix = "mail")
public class MailProperties { public class MailProperties {

View File

@ -5,7 +5,6 @@ import lombok.NoArgsConstructor;
import org.redisson.config.ReadMode; import org.redisson.config.ReadMode;
import org.redisson.config.SubscriptionMode; import org.redisson.config.SubscriptionMode;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/** /**
* Redisson 配置属性 * Redisson 配置属性
@ -13,7 +12,6 @@ import org.springframework.stereotype.Component;
* @author Lion Li * @author Lion Li
*/ */
@Data @Data
@Component
@ConfigurationProperties(prefix = "redisson") @ConfigurationProperties(prefix = "redisson")
public class RedissonProperties { public class RedissonProperties {

View File

@ -1,7 +1,9 @@
package com.ruoyi.common.satoken.config; package com.ruoyi.common.satoken.config;
import cn.dev33.satoken.jwt.StpLogicJwtForSimple; import cn.dev33.satoken.jwt.StpLogicJwtForSimple;
import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpLogic; import cn.dev33.satoken.stp.StpLogic;
import com.ruoyi.common.satoken.core.service.SaPermissionImpl;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@ -20,4 +22,12 @@ public class SaTokenConfig implements WebMvcConfigurer {
return new StpLogicJwtForSimple(); return new StpLogicJwtForSimple();
} }
/**
* 权限接口实现(使用bean注入方便用户替换)
*/
@Bean
public StpInterface stpInterface() {
return new SaPermissionImpl();
}
} }

View File

@ -4,7 +4,6 @@ import cn.dev33.satoken.stp.StpInterface;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.enums.UserType; import com.ruoyi.common.core.enums.UserType;
import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.common.satoken.utils.LoginHelper;
import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -14,7 +13,6 @@ import java.util.List;
* *
* @author Lion Li * @author Lion Li
*/ */
@Component
public class SaPermissionImpl implements StpInterface { public class SaPermissionImpl implements StpInterface {
/** /**

View File

@ -1,2 +1 @@
com.ruoyi.common.satoken.core.dao.PlusSaTokenDao com.ruoyi.common.satoken.core.dao.PlusSaTokenDao
com.ruoyi.common.satoken.core.service.SaPermissionImpl

View File

@ -7,6 +7,7 @@ import com.ruoyi.common.security.config.properties.SecurityProperties;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@ -15,9 +16,11 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
* *
* @author Lion Li * @author Lion Li
*/ */
@RequiredArgsConstructor
@Slf4j @Slf4j
@AutoConfiguration @AutoConfiguration
@EnableConfigurationProperties(SecurityProperties.class)
@RequiredArgsConstructor
public class SecurityConfig implements WebMvcConfigurer { public class SecurityConfig implements WebMvcConfigurer {
private final SecurityProperties securityProperties; private final SecurityProperties securityProperties;

View File

@ -2,7 +2,6 @@ package com.ruoyi.common.security.config.properties;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/** /**
* Security 配置属性 * Security 配置属性
@ -10,7 +9,6 @@ import org.springframework.stereotype.Component;
* @author Lion Li * @author Lion Li
*/ */
@Data @Data
@Component
@ConfigurationProperties(prefix = "security") @ConfigurationProperties(prefix = "security")
public class SecurityProperties { public class SecurityProperties {

View File

@ -2,7 +2,6 @@ package com.ruoyi.common.sms.config.properties;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/** /**
* SMS短信 配置属性 * SMS短信 配置属性
@ -11,7 +10,6 @@ import org.springframework.stereotype.Component;
* @version 4.2.0 * @version 4.2.0
*/ */
@Data @Data
@Component
@ConfigurationProperties(prefix = "sms") @ConfigurationProperties(prefix = "sms")
public class SmsProperties { public class SmsProperties {

View File

@ -4,7 +4,9 @@ import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.CircleCaptcha; import cn.hutool.captcha.CircleCaptcha;
import cn.hutool.captcha.LineCaptcha; import cn.hutool.captcha.LineCaptcha;
import cn.hutool.captcha.ShearCaptcha; import cn.hutool.captcha.ShearCaptcha;
import com.ruoyi.common.web.config.properties.CaptchaProperties;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
@ -16,6 +18,7 @@ import java.awt.*;
* @author Lion Li * @author Lion Li
*/ */
@AutoConfiguration @AutoConfiguration
@EnableConfigurationProperties(CaptchaProperties.class)
public class CaptchaConfig { public class CaptchaConfig {
private static final int WIDTH = 160; private static final int WIDTH = 160;

View File

@ -4,13 +4,13 @@ import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.web.config.properties.XssProperties; import com.ruoyi.common.web.config.properties.XssProperties;
import com.ruoyi.common.web.filter.RepeatableFilter; import com.ruoyi.common.web.filter.RepeatableFilter;
import com.ruoyi.common.web.filter.XssFilter; import com.ruoyi.common.web.filter.XssFilter;
import org.springframework.beans.factory.annotation.Autowired; import jakarta.servlet.DispatcherType;
import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import jakarta.servlet.DispatcherType;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -20,22 +20,20 @@ import java.util.Map;
* @author Lion Li * @author Lion Li
*/ */
@AutoConfiguration @AutoConfiguration
@EnableConfigurationProperties(XssProperties.class)
public class FilterConfig { public class FilterConfig {
@Autowired
private XssProperties xssProperties;
@SuppressWarnings({"rawtypes", "unchecked"}) @SuppressWarnings({"rawtypes", "unchecked"})
@Bean @Bean
@ConditionalOnProperty(value = "xss.enabled", havingValue = "true") @ConditionalOnProperty(value = "xss.enabled", havingValue = "true")
public FilterRegistrationBean xssFilterRegistration() { public FilterRegistrationBean xssFilterRegistration(XssProperties xssProperties) {
FilterRegistrationBean registration = new FilterRegistrationBean(); FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST); registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter()); registration.setFilter(new XssFilter());
registration.addUrlPatterns(StringUtils.split(xssProperties.getUrlPatterns(), ",")); registration.addUrlPatterns(StringUtils.split(xssProperties.getUrlPatterns(), ","));
registration.setName("xssFilter"); registration.setName("xssFilter");
registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE); registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);
Map<String, String> initParameters = new HashMap<String, String>(); Map<String, String> initParameters = new HashMap<>();
initParameters.put("excludes", xssProperties.getExcludes()); initParameters.put("excludes", xssProperties.getExcludes());
registration.setInitParameters(initParameters); registration.setInitParameters(initParameters);
return registration; return registration;

View File

@ -4,7 +4,6 @@ import com.ruoyi.common.web.enums.CaptchaCategory;
import com.ruoyi.common.web.enums.CaptchaType; import com.ruoyi.common.web.enums.CaptchaType;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/** /**
* 验证码 配置属性 * 验证码 配置属性
@ -12,7 +11,6 @@ import org.springframework.stereotype.Component;
* @author Lion Li * @author Lion Li
*/ */
@Data @Data
@Component
@ConfigurationProperties(prefix = "captcha") @ConfigurationProperties(prefix = "captcha")
public class CaptchaProperties { public class CaptchaProperties {

View File

@ -2,7 +2,6 @@ package com.ruoyi.common.web.config.properties;
import lombok.Data; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/** /**
* xss过滤 配置属性 * xss过滤 配置属性
@ -10,7 +9,6 @@ import org.springframework.stereotype.Component;
* @author Lion Li * @author Lion Li
*/ */
@Data @Data
@Component
@ConfigurationProperties(prefix = "xss") @ConfigurationProperties(prefix = "xss")
public class XssProperties { public class XssProperties {

View File

@ -21,10 +21,8 @@ import org.springframework.context.annotation.Configuration;
@ConditionalOnProperty(prefix = "xxl.job", name = "enabled", havingValue = "true") @ConditionalOnProperty(prefix = "xxl.job", name = "enabled", havingValue = "true")
public class XxlJobConfig { public class XxlJobConfig {
private final XxlJobProperties xxlJobProperties;
@Bean @Bean
public XxlJobSpringExecutor xxlJobExecutor() { public XxlJobSpringExecutor xxlJobExecutor(XxlJobProperties xxlJobProperties) {
log.info(">>>>>>>>>>> xxl-job config init."); log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdminAddresses()); xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdminAddresses());