ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/AsyncConfig.java
@@ -2,16 +2,14 @@ import cn.hutool.core.util.ArrayUtil; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.SpringUtils; import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.scheduling.annotation.AsyncConfigurer; import org.springframework.scheduling.annotation.EnableAsync; import java.util.Arrays; import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; /** * 异步配置 @@ -22,16 +20,12 @@ @AutoConfiguration public class AsyncConfig implements AsyncConfigurer { @Autowired @Qualifier("scheduledExecutorService") private ScheduledExecutorService scheduledExecutorService; /** * 自定义 @Async 注解使用系统线程池 */ @Override public Executor getAsyncExecutor() { return scheduledExecutorService; return SpringUtils.getBean("scheduledExecutorService"); } /** ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/ValidatorConfig.java
@@ -22,18 +22,19 @@ */ @Bean public Validator validator(MessageSource messageSource) { LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean(); // 国际化 factoryBean.setValidationMessageSource(messageSource); // 设置使用 HibernateValidator 校验器 factoryBean.setProviderClass(HibernateValidator.class); Properties properties = new Properties(); // 设置 快速异常返回 properties.setProperty("hibernate.validator.fail_fast", "true"); factoryBean.setValidationProperties(properties); // 加载配置 factoryBean.afterPropertiesSet(); return factoryBean.getValidator(); try (LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean()) { // 国际化 factoryBean.setValidationMessageSource(messageSource); // 设置使用 HibernateValidator 校验器 factoryBean.setProviderClass(HibernateValidator.class); Properties properties = new Properties(); // 设置 快速异常返回 properties.setProperty("hibernate.validator.fail_fast", "true"); factoryBean.setValidationProperties(properties); // 加载配置 factoryBean.afterPropertiesSet(); return factoryBean.getValidator(); } } } ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/MessageUtils.java
@@ -3,6 +3,7 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.springframework.context.MessageSource; import org.springframework.context.NoSuchMessageException; import org.springframework.context.i18n.LocaleContextHolder; /** @@ -23,6 +24,10 @@ * @return 获取国际化翻译值 */ public static String message(String code, Object... args) { return MESSAGE_SOURCE.getMessage(code, args, LocaleContextHolder.getLocale()); try { return MESSAGE_SOURCE.getMessage(code, args, LocaleContextHolder.getLocale()); } catch (NoSuchMessageException e) { return code; } } } ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ServletUtils.java
@@ -10,6 +10,7 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.springframework.http.MediaType; import org.springframework.util.LinkedCaseInsensitiveMap; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -19,6 +20,7 @@ import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; @@ -101,14 +103,22 @@ * 获取request */ public static HttpServletRequest getRequest() { return getRequestAttributes().getRequest(); try { return getRequestAttributes().getRequest(); } catch (Exception e) { return null; } } /** * 获取response */ public static HttpServletResponse getResponse() { return getRequestAttributes().getResponse(); try { return getRequestAttributes().getResponse(); } catch (Exception e) { return null; } } /** @@ -119,8 +129,33 @@ } public static ServletRequestAttributes getRequestAttributes() { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); return (ServletRequestAttributes) attributes; try { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); return (ServletRequestAttributes) attributes; } catch (Exception e) { return null; } } public static String getHeader(HttpServletRequest request, String name) { String value = request.getHeader(name); if (StringUtils.isEmpty(value)) { return StringUtils.EMPTY; } return urlDecode(value); } public static Map<String, String> getHeaders(HttpServletRequest request) { Map<String, String> map = new LinkedCaseInsensitiveMap<>(); Enumeration<String> enumeration = request.getHeaderNames(); if (enumeration != null) { while (enumeration.hasMoreElements()) { String key = enumeration.nextElement(); String value = request.getHeader(key); map.put(key, value); } } return map; } /**