diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/PageUtils.java b/commons/common-util/src/main/java/com/schbrain/common/util/PageUtils.java index 7b4a7c54a09f656647536b870f5a668de19c48f8..3cadcb634777fd82c2ee811feead2cf41d2889a6 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/PageUtils.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/PageUtils.java @@ -9,8 +9,7 @@ import java.util.Collections; import java.util.List; import java.util.function.Function; -import static com.schbrain.common.constants.PageConstants.DEFAULT_SEARCH_COUNT; -import static com.schbrain.common.constants.PageConstants.DEFAULT_TOTAL_COUNT; +import static com.schbrain.common.constants.PageConstants.*; /** * @author liaozan @@ -71,4 +70,4 @@ public class PageUtils { return pageParam; } -} \ No newline at end of file +} diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java b/commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java index 469cef4ec3a14b398b838e2e8e9aacdaa83ebff2..b229baf02617bf36be8d352164812b0d09fd92b0 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java @@ -14,9 +14,7 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; import static java.util.Collections.emptyList; -import static java.util.stream.Collectors.groupingBy; -import static java.util.stream.Collectors.joining; -import static java.util.stream.Collectors.mapping; +import static java.util.stream.Collectors.*; /** * @author liaozan diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/support/ValidateSupport.java b/commons/common-util/src/main/java/com/schbrain/common/util/support/ValidateSupport.java index dade63c75d273d628c5ce8412ce26fa3887cd8a2..74c471428c0d3c6989b757824866227fb7934357 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/support/ValidateSupport.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/support/ValidateSupport.java @@ -77,4 +77,4 @@ public interface ValidateSupport { return value != null ? value : defaultValueSupplier.get(); } -} \ No newline at end of file +} diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/support/trace/TraceParam.java b/commons/common-util/src/main/java/com/schbrain/common/util/support/trace/TraceParam.java index bf41f410f6141a86236334474a4e04e319fa2a8c..11a5a8dff521a620796d5b3f31c4df259101ba60 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/support/trace/TraceParam.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/support/trace/TraceParam.java @@ -47,4 +47,4 @@ public @interface TraceParam { protected abstract String format0(Map argsMap); } -} \ No newline at end of file +} diff --git a/commons/common/src/main/java/com/schbrain/common/annotation/IgnoreLogin.java b/commons/common/src/main/java/com/schbrain/common/annotation/IgnoreLogin.java index 9f06148abd4ab4b4c747614b4f37bf98d3c42805..485159c064ce4b4adc9ae9863f2dccdc647bebd4 100644 --- a/commons/common/src/main/java/com/schbrain/common/annotation/IgnoreLogin.java +++ b/commons/common/src/main/java/com/schbrain/common/annotation/IgnoreLogin.java @@ -15,4 +15,4 @@ public @interface IgnoreLogin { */ boolean ignore() default true; -} \ No newline at end of file +} diff --git a/commons/common/src/main/java/com/schbrain/common/entity/PaginationInfo.java b/commons/common/src/main/java/com/schbrain/common/entity/PaginationInfo.java index 586d21f0169921984edde40874351b4dbc3ef79e..646f561fb3180c15c3680cbba246c5466ff289f8 100644 --- a/commons/common/src/main/java/com/schbrain/common/entity/PaginationInfo.java +++ b/commons/common/src/main/java/com/schbrain/common/entity/PaginationInfo.java @@ -6,10 +6,7 @@ import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.List; -import static com.schbrain.common.constants.PageConstants.DEFAULT_PAGE_INDEX; -import static com.schbrain.common.constants.PageConstants.DEFAULT_PAGE_SIZE; -import static com.schbrain.common.constants.PageConstants.DEFAULT_TOTAL_COUNT; -import static com.schbrain.common.constants.PageConstants.DEFAULT_TOTAL_PAGE_COUNT; +import static com.schbrain.common.constants.PageConstants.*; /** * @author liaozan diff --git a/commons/module-tree/src/main/java/com/schbrain/common/module/tree/TreeNodeProcessor.java b/commons/module-tree/src/main/java/com/schbrain/common/module/tree/TreeNodeProcessor.java index 52cc7dc96e6bb7e067dbdf5920fe99831fb77554..c638cf178fbaf58b3a05074a0acc30c32bc220a2 100644 --- a/commons/module-tree/src/main/java/com/schbrain/common/module/tree/TreeNodeProcessor.java +++ b/commons/module-tree/src/main/java/com/schbrain/common/module/tree/TreeNodeProcessor.java @@ -419,4 +419,4 @@ public class TreeNodeProcessor { node.setRgt(null); } -} \ No newline at end of file +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/ServletComponentConfiguration.java b/commons/web-common/src/main/java/com/schbrain/common/web/ServletComponentConfiguration.java index b6da03feda8566d277f24d4962946bb93161a3b9..34c48d20bff0b2cfffe32c7693bbb03a67ca5432 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/ServletComponentConfiguration.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/ServletComponentConfiguration.java @@ -3,7 +3,6 @@ package com.schbrain.common.web; import com.schbrain.common.web.properties.WebProperties; import com.schbrain.common.web.servlet.CharacterEncodingServletContextInitializer; import com.schbrain.common.web.servlet.RequestLoggingFilter; -import com.schbrain.common.web.servlet.RequestWrapperFilter; import com.schbrain.common.web.servlet.TraceIdInitializeServletListener; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -39,12 +38,6 @@ public class ServletComponentConfiguration { return requestContextFilter; } - @Bean - @ConditionalOnMissingBean - public RequestWrapperFilter requestWrapperFilter() { - return new RequestWrapperFilter(); - } - @Bean @ConditionalOnMissingBean @ConditionalOnProperty(value = "schbrain.web.enable-request-logging", havingValue = "true", matchIfMissing = true) diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java b/commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java index 74d0d8a940ef1b491a50380876a00af377eeded7..e3c2590b25a9a05b6c7d6639bc2c622a2ff1f401 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java @@ -3,7 +3,7 @@ package com.schbrain.common.web; import com.schbrain.common.web.argument.BodyParamArgumentResolverWebMvcConfigurer; import com.schbrain.common.web.properties.WebProperties; import com.schbrain.common.web.result.ResponseBodyHandler; -import com.schbrain.common.web.support.converter.Jsr310DateTimeWebMvcConfigurer; +import com.schbrain.common.web.support.converter.datetime.DateTimeConvertersWebMvcConfigurer; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfigurationPackages; @@ -43,8 +43,8 @@ public class WebCommonAutoConfiguration { @Bean @ConditionalOnMissingBean - public Jsr310DateTimeWebMvcConfigurer defaultJsr310DateTimeWebMvcConfigurer() { - return new Jsr310DateTimeWebMvcConfigurer(); + public DateTimeConvertersWebMvcConfigurer defaultDateTimeConvertersWebMvcConfigurer() { + return new DateTimeConvertersWebMvcConfigurer(); } @Bean diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/annotation/ResponseWrapOption.java b/commons/web-common/src/main/java/com/schbrain/common/web/annotation/ResponseWrapOption.java index 37392ccabf5f58763258ca99d8bdaa7e1b0a04c9..9323a792905c34773c715b43b4e57ebe02985c15 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/annotation/ResponseWrapOption.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/annotation/ResponseWrapOption.java @@ -22,4 +22,4 @@ public @interface ResponseWrapOption { */ boolean ignoreException() default true; -} \ No newline at end of file +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/argument/BodyParamMethodArgumentResolver.java b/commons/web-common/src/main/java/com/schbrain/common/web/argument/BodyParamMethodArgumentResolver.java index ed6c79b32d47e946a5f829b47941937a20fe9231..efe536843190c5434cd388d2ad8337e0e3b4aa23 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/argument/BodyParamMethodArgumentResolver.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/argument/BodyParamMethodArgumentResolver.java @@ -64,18 +64,14 @@ public class BodyParamMethodArgumentResolver extends AbstractNamedValueMethodArg return objectMapper.constructType(parameterType); } - private JsonNode getRequestBody(NativeWebRequest nativeWebRequest) throws IOException { - JsonNode requestBody = (JsonNode) nativeWebRequest.getAttribute(REQUEST_BODY_CACHE, SCOPE_REQUEST); + private JsonNode getRequestBody(NativeWebRequest webRequest) throws IOException { + JsonNode requestBody = (JsonNode) webRequest.getAttribute(REQUEST_BODY_CACHE, SCOPE_REQUEST); if (requestBody == null) { - HttpServletRequest request = wrapRequest(nativeWebRequest); + HttpServletRequest request = wrapIfRequired(webRequest.getNativeRequest(HttpServletRequest.class)); requestBody = objectMapper.readTree(request.getInputStream()); - nativeWebRequest.setAttribute(REQUEST_BODY_CACHE, requestBody, SCOPE_REQUEST); + webRequest.setAttribute(REQUEST_BODY_CACHE, requestBody, SCOPE_REQUEST); } return requestBody; } - private HttpServletRequest wrapRequest(NativeWebRequest request) { - return wrapIfRequired(request.getNativeRequest(HttpServletRequest.class)); - } - } diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java b/commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java index 5de368ffa58d72f8d793c23660f9b46f6048ddf9..8b407943a30efa25884b4b0c14df77f7f5d3dca9 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java @@ -28,10 +28,8 @@ import java.sql.SQLException; import java.util.Arrays; import java.util.List; -import static com.schbrain.common.constants.ResponseCodeConstants.PARAM_INVALID; -import static com.schbrain.common.constants.ResponseCodeConstants.SERVER_ERROR; -import static com.schbrain.common.util.support.ValidationMessageBuilder.buildBindingErrorMsg; -import static com.schbrain.common.util.support.ValidationMessageBuilder.buildConstraintViolationErrorMsg; +import static com.schbrain.common.constants.ResponseCodeConstants.*; +import static com.schbrain.common.util.support.ValidationMessageBuilder.*; /** * @author liaozan diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java b/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java index cf5767889f9cf5f90b4fc1886921b993486cf844..bfd045427cc5f2c2367b190064ed3c6ed9da072f 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java @@ -14,8 +14,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import static com.schbrain.common.web.utils.RequestContentCachingUtils.getRequestBody; -import static com.schbrain.common.web.utils.RequestContentCachingUtils.wrapIfRequired; +import static com.schbrain.common.web.utils.RequestContentCachingUtils.*; /** * 请求日志拦截器 diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestWrapperFilter.java b/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestWrapperFilter.java deleted file mode 100644 index 59c0a84fbfef1df393b88057ec911c303d6f918d..0000000000000000000000000000000000000000 --- a/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestWrapperFilter.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.schbrain.common.web.servlet; - -import org.springframework.boot.web.servlet.filter.OrderedFilter; -import org.springframework.core.Ordered; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -import static com.schbrain.common.web.utils.RequestContentCachingUtils.wrapIfRequired; - -/** - * @author liaozan - * @since 2023/8/20 - */ -public class RequestWrapperFilter extends OncePerRequestFilter implements OrderedFilter { - - @Override - public int getOrder() { - return Ordered.HIGHEST_PRECEDENCE; - } - - @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { - chain.doFilter(wrapIfRequired(request), response); - } - -} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/Jsr310Converters.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/Jsr310Converters.java deleted file mode 100644 index 1b88cfd1db4fb8a26eab92eeaae96bbf25a46a4a..0000000000000000000000000000000000000000 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/Jsr310Converters.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.schbrain.common.web.support.converter; - -import org.springframework.core.convert.converter.Converter; - -import java.time.Instant; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.util.ArrayList; -import java.util.List; - -import static java.time.LocalDateTime.ofInstant; -import static java.time.ZoneId.systemDefault; - -/** - * @author liaozan - * @since 2023/8/16 - */ -public class Jsr310Converters { - - public static List> getConverters() { - List> converters = new ArrayList<>(); - - converters.add(LongToLocalDateConverter.INSTANCE); - converters.add(LongToLocalTimeConverter.INSTANCE); - converters.add(LongToLocalDateTimeConverter.INSTANCE); - - converters.add(StringToLocalDateConverter.INSTANCE); - converters.add(StringToLocalTimeConverter.INSTANCE); - converters.add(StringToLocalDateTimeConverter.INSTANCE); - - return converters; - } - - public enum LongToLocalDateConverter implements Converter { - - INSTANCE; - - @Override - public LocalDate convert(Long source) { - return LongToLocalDateTimeConverter.INSTANCE.convert(source).toLocalDate(); - } - } - - public enum LongToLocalTimeConverter implements Converter { - - INSTANCE; - - @Override - public LocalTime convert(Long source) { - return LongToLocalDateTimeConverter.INSTANCE.convert(source).toLocalTime(); - } - } - - public enum LongToLocalDateTimeConverter implements Converter { - - INSTANCE; - - @Override - public LocalDateTime convert(Long source) { - return ofInstant(Instant.ofEpochMilli(source), systemDefault()); - } - } - - public enum StringToLocalDateConverter implements Converter { - - INSTANCE; - - @Override - public LocalDate convert(String source) { - return StringToLocalDateTimeConverter.INSTANCE.convert(source).toLocalDate(); - } - } - - public enum StringToLocalTimeConverter implements Converter { - - INSTANCE; - - @Override - public LocalTime convert(String source) { - return StringToLocalDateTimeConverter.INSTANCE.convert(source).toLocalTime(); - } - } - - public enum StringToLocalDateTimeConverter implements Converter { - - INSTANCE; - - @Override - public LocalDateTime convert(String source) { - return ofInstant(Instant.ofEpochMilli(Long.parseLong(source)), systemDefault()); - } - } - -} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/Jsr310DateTimeWebMvcConfigurer.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/Jsr310DateTimeWebMvcConfigurer.java deleted file mode 100644 index 4033ae8a52b8584184cba4c0d88fbb2e98426ae4..0000000000000000000000000000000000000000 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/Jsr310DateTimeWebMvcConfigurer.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.schbrain.common.web.support.converter; - -import org.springframework.format.FormatterRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -/** - * @author liaozan - * @since 2023/8/16 - */ -public class Jsr310DateTimeWebMvcConfigurer implements WebMvcConfigurer { - - @Override - public void addFormatters(FormatterRegistry registry) { - Jsr310Converters.getConverters().forEach(registry::addConverter); - } - -} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConditionalConverter.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConditionalConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..45e54bb32b8e72dec590e4c735e1f573d1d62444 --- /dev/null +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConditionalConverter.java @@ -0,0 +1,84 @@ +package com.schbrain.common.web.support.converter.datetime; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.util.NumberUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.core.ResolvableType; +import org.springframework.core.convert.TypeDescriptor; +import org.springframework.core.convert.converter.ConditionalGenericConverter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.format.DateTimeFormatter; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author liaozan + * @since 2023/9/16 + */ +abstract class DateTimeConditionalConverter implements ConditionalGenericConverter { + + private final TypeDescriptor targetType; + private final TypeDescriptor stringType = TypeDescriptor.valueOf(String.class); + private final Map formatters = new ConcurrentHashMap<>(); + + public DateTimeConditionalConverter() { + this.targetType = TypeDescriptor.valueOf(ResolvableType.forClass(getClass()).getSuperType().getGeneric(0).getRawClass()); + } + + @Override + public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) { + return sourceType.isAssignableTo(stringType) && targetType.isAssignableTo(this.targetType); + } + + @Override + public Set getConvertibleTypes() { + return Set.of(new ConvertiblePair(String.class, targetType.getObjectType())); + } + + @Override + public T convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { + if (source == null) { + return null; + } + return convert((String) source, targetType); + } + + protected final T convert(String source, TypeDescriptor targetType) { + if (StringUtils.isBlank(source)) { + return null; + } + if (NumberUtil.isLong(source)) { + return doConvert(Long.parseLong(source)); + } else { + DateTimeFormatter formatter = ofPattern(determinePattern(targetType)); + return doConvert(source, formatter); + } + } + + protected String determinePattern(TypeDescriptor targetType) { + DateTimeFormat annotation = targetType.getAnnotation(DateTimeFormat.class); + String pattern = null; + if (annotation != null) { + pattern = annotation.pattern(); + } + if (StringUtils.isBlank(pattern)) { + pattern = defaultPattern(); + } + return pattern; + } + + protected String defaultPattern() { + return DatePattern.NORM_DATETIME_PATTERN; + } + + protected DateTimeFormatter ofPattern(String pattern) { + return formatters.computeIfAbsent(pattern, ignore -> DatePattern.createFormatter(pattern)); + } + + protected abstract T doConvert(Long source); + + protected abstract T doConvert(String source, DateTimeFormatter formatter); + +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConvertersWebMvcConfigurer.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConvertersWebMvcConfigurer.java new file mode 100644 index 0000000000000000000000000000000000000000..e61d120320608677d7d238c644348ccaab2db028 --- /dev/null +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConvertersWebMvcConfigurer.java @@ -0,0 +1,20 @@ +package com.schbrain.common.web.support.converter.datetime; + +import org.springframework.format.FormatterRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * @author liaozan + * @since 2023/8/16 + */ +public class DateTimeConvertersWebMvcConfigurer implements WebMvcConfigurer { + + @Override + public void addFormatters(FormatterRegistry registry) { + registry.addConverter(StringToDateConverter.INSTANCE); + registry.addConverter(StringToLocalTimeConverter.INSTANCE); + registry.addConverter(StringToLocalDateConverter.INSTANCE); + registry.addConverter(StringToLocalDateTimeConverter.INSTANCE); + } + +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToDateConverter.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToDateConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..8bf968061b6d484c6fb61d2d41bf521782332c80 --- /dev/null +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToDateConverter.java @@ -0,0 +1,26 @@ +package com.schbrain.common.web.support.converter.datetime; + +import cn.hutool.core.date.DateUtil; + +import java.time.format.DateTimeFormatter; +import java.util.Date; + +/** + * @author liaozan + * @since 2023/9/16 + */ +class StringToDateConverter extends DateTimeConditionalConverter { + + static final StringToDateConverter INSTANCE = new StringToDateConverter(); + + @Override + protected Date doConvert(Long source) { + return DateUtil.date(source); + } + + @Override + protected Date doConvert(String source, DateTimeFormatter formatter) { + return DateUtil.parse(source, formatter); + } + +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateConverter.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..be04396cb315d411225c405875381dd528b14598 --- /dev/null +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateConverter.java @@ -0,0 +1,32 @@ +package com.schbrain.common.web.support.converter.datetime; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +/** + * @author liaozan + * @since 2023/9/16 + */ +class StringToLocalDateConverter extends DateTimeConditionalConverter { + + static final StringToLocalDateConverter INSTANCE = new StringToLocalDateConverter(); + + @Override + protected String defaultPattern() { + return DatePattern.NORM_DATE_PATTERN; + } + + @Override + protected LocalDate doConvert(Long source) { + return LocalDateTimeUtil.of(source).toLocalDate(); + } + + @Override + protected LocalDate doConvert(String source, DateTimeFormatter formatter) { + return LocalDate.parse(source, formatter); + } + +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateTimeConverter.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateTimeConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..35ef259d4da31c231c91c4159737c084f6d97116 --- /dev/null +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateTimeConverter.java @@ -0,0 +1,26 @@ +package com.schbrain.common.web.support.converter.datetime; + +import cn.hutool.core.date.LocalDateTimeUtil; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * @author liaozan + * @since 2023/9/16 + */ +class StringToLocalDateTimeConverter extends DateTimeConditionalConverter { + + static final StringToLocalDateTimeConverter INSTANCE = new StringToLocalDateTimeConverter(); + + @Override + protected LocalDateTime doConvert(Long source) { + return LocalDateTimeUtil.of(source); + } + + @Override + protected LocalDateTime doConvert(String source, DateTimeFormatter formatter) { + return LocalDateTime.parse(source, formatter); + } + +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalTimeConverter.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalTimeConverter.java new file mode 100644 index 0000000000000000000000000000000000000000..a17ff66da1f6ca938106889cf3837e9164ef2ff8 --- /dev/null +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalTimeConverter.java @@ -0,0 +1,32 @@ +package com.schbrain.common.web.support.converter.datetime; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; + +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; + +/** + * @author liaozan + * @since 2023/9/16 + */ +class StringToLocalTimeConverter extends DateTimeConditionalConverter { + + static final StringToLocalTimeConverter INSTANCE = new StringToLocalTimeConverter(); + + @Override + protected String defaultPattern() { + return DatePattern.NORM_TIME_PATTERN; + } + + @Override + protected LocalTime doConvert(Long source) { + return LocalDateTimeUtil.of(source).toLocalTime(); + } + + @Override + protected LocalTime doConvert(String source, DateTimeFormatter formatter) { + return LocalTime.parse(source, formatter); + } + +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/AbstractSignatureValidationInterceptor.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/AbstractSignatureValidationInterceptor.java deleted file mode 100644 index d9d9e51e847e39c7eea9573bb59fc803e26e13f5..0000000000000000000000000000000000000000 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/AbstractSignatureValidationInterceptor.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.schbrain.common.web.support.signature; - -import cn.hutool.crypto.digest.DigestUtil; -import com.schbrain.common.util.StreamUtils; -import com.schbrain.common.util.TraceIdUtils; -import com.schbrain.common.web.support.BaseHandlerInterceptor; -import org.apache.commons.lang3.StringUtils; -import org.springframework.web.method.HandlerMethod; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; - -import static cn.hutool.core.text.StrPool.UNDERLINE; -import static com.schbrain.common.web.utils.RequestContentCachingUtils.getRequestBody; - -public abstract class AbstractSignatureValidationInterceptor extends BaseHandlerInterceptor { - - private static final String SCH_APP_KEY = "Sch-App-Key"; - private static final String SCH_TIMESTAMP = "Sch-Timestamp"; - private static final String SCH_SIGNATURE = "Sch-Signature"; - private static final String SCH_EXPIRE_TIME = "Sch-Expire-Time"; - - @Override - protected boolean preHandle(HttpServletRequest request, HttpServletResponse response, HandlerMethod handler) { - String appKey = request.getHeader(SCH_APP_KEY); - String timestamp = request.getHeader(SCH_TIMESTAMP); - String signature = request.getHeader(SCH_SIGNATURE); - String expireTime = request.getHeader(SCH_EXPIRE_TIME); - - String traceId = request.getHeader(TraceIdUtils.TRACE_ID); - if (StringUtils.isNotBlank(traceId)) { - TraceIdUtils.set(traceId); - } - - // 空校验 - if (StringUtils.isAnyBlank(appKey, timestamp, signature, expireTime)) { - throw new SignatureValidationException("签名参数为空!"); - } - - // 过期校验 - if (System.currentTimeMillis() > Long.parseLong(expireTime)) { - throw new SignatureValidationException("请求信息已过期!"); - } - - // 获取appSecret - SignatureContext context = getSignatureContext(appKey); - if (null == context || StringUtils.isBlank(context.getAppSecret())) { - throw new SignatureValidationException("appSecret不存在!"); - } - - String requestUri = request.getRequestURI(); - String queryString = request.getQueryString(); - String requestBody = getRequestBody(request); - - // 校验签名 - String calculatedSignature = signParams(requestUri, queryString, requestBody, timestamp, appKey, context.getAppSecret()); - if (!Objects.equals(signature, calculatedSignature)) { - throw new SignatureValidationException(); - } - - SignatureContextUtil.set(context); - return true; - } - - @Override - protected void afterCompletion(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod, Exception ex) { - SignatureContextUtil.clear(); - } - - protected String signParams(String requestUri, String queryString, String bodyString, String timestamp, String appKey, String appSecret) { - List params = StreamUtils.filterToList(Arrays.asList(requestUri, queryString, bodyString, timestamp, appKey, appSecret), StringUtils::isNotBlank); - String toSign = StreamUtils.join(params, UNDERLINE); - return DigestUtil.sha256Hex(toSign); - } - - protected abstract T getSignatureContext(String appKey); - -} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContext.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContext.java deleted file mode 100644 index ae96b6472e1ec709271ff68b3a69104fce93e281..0000000000000000000000000000000000000000 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContext.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.schbrain.common.web.support.signature; - -import lombok.Data; - -@Data -public class SignatureContext { - - private String appKey; - - private String appSecret; - -} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContextUtil.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContextUtil.java deleted file mode 100644 index ebc16b04a2a92a3e418e7a28f95572fbd2c728de..0000000000000000000000000000000000000000 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContextUtil.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.schbrain.common.web.support.signature; - -import java.util.Optional; -import java.util.function.Supplier; - -public class SignatureContextUtil { - - private static final ThreadLocal LOCAL = new InheritableThreadLocal<>(); - - private static final Supplier EXCEPTION_SUPPLIER = SignatureValidationException::new; - - /** - * 取值 - */ - public static T get(Class type) { - return type.cast(Optional.ofNullable(LOCAL.get()).orElseThrow(EXCEPTION_SUPPLIER)); - } - - /** - * 获取appKey - */ - public static String getAppKey() { - return get(SignatureContext.class).getAppKey(); - } - - /** - * 获取appSecret - */ - public static String getAppSecret() { - return get(SignatureContext.class).getAppSecret(); - } - - /** - * 赋值 - */ - public static void set(T signatureContext) { - LOCAL.set(signatureContext); - } - - /** - * 移除 - */ - public static void clear() { - LOCAL.remove(); - } - -} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureValidationException.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureValidationException.java deleted file mode 100644 index 51e614240cd1f17b2bc72379760568e42a30071e..0000000000000000000000000000000000000000 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureValidationException.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.schbrain.common.web.support.signature; - -import com.schbrain.common.exception.BaseException; - -import static com.schbrain.common.constants.ResponseActionConstants.ALERT; -import static com.schbrain.common.constants.ResponseCodeConstants.PARAM_INVALID; - -public class SignatureValidationException extends BaseException { - - private static final long serialVersionUID = 7564001466173362458L; - - private static final String DEFAULT_ERR_MSG = "签名验证异常"; - - public SignatureValidationException() { - this(DEFAULT_ERR_MSG); - } - - public SignatureValidationException(String message) { - super(message, PARAM_INVALID, ALERT); - } - -} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/utils/RequestContentCachingUtils.java b/commons/web-common/src/main/java/com/schbrain/common/web/utils/RequestContentCachingUtils.java index 0e0f5d2779c4166518eb10db5578647cce0dc975..339fff927d5f73e29f00ee93e948d2597884aca4 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/utils/RequestContentCachingUtils.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/utils/RequestContentCachingUtils.java @@ -1,15 +1,13 @@ package com.schbrain.common.web.utils; import com.schbrain.common.util.ValidateUtils; -import com.schbrain.common.web.servlet.ContentCachingRequest; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; +import org.springframework.web.util.ContentCachingRequestWrapper; import javax.annotation.Nullable; import javax.servlet.http.HttpServletRequest; +import java.nio.charset.Charset; -import static org.springframework.http.HttpMethod.POST; -import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static org.springframework.web.util.WebUtils.getNativeRequest; /** @@ -24,10 +22,10 @@ public class RequestContentCachingUtils { */ public static HttpServletRequest wrapIfRequired(HttpServletRequest request) { ValidateUtils.notNull(request, "request must not be null"); - if (request instanceof ContentCachingRequest || !isJsonPostRequest(request)) { + if (request instanceof ContentCachingRequestWrapper) { return request; } else { - return new ContentCachingRequest(request); + return new ContentCachingRequestWrapper(request); } } @@ -36,23 +34,20 @@ public class RequestContentCachingUtils { */ @Nullable public static String getRequestBody(HttpServletRequest request) { - return getRequestBody(request, request.getCharacterEncoding()); + return getRequestBody(request, Charset.forName(request.getCharacterEncoding())); } /** * Get request body content */ @Nullable - public static String getRequestBody(HttpServletRequest request, String characterEncoding) { - ContentCachingRequest requestToUse = getNativeRequest(request, ContentCachingRequest.class); + public static String getRequestBody(HttpServletRequest request, Charset characterEncoding) { + ContentCachingRequestWrapper requestToUse = getNativeRequest(request, ContentCachingRequestWrapper.class); if (requestToUse == null) { return null; } - return requestToUse.getContentAsString(characterEncoding); - } - - private static boolean isJsonPostRequest(HttpServletRequest request) { - return POST.matches(request.getMethod()) && StringUtils.contains(request.getContentType(), APPLICATION_JSON_VALUE); + byte[] content = requestToUse.getContentAsByteArray(); + return new String(content, characterEncoding); } } diff --git a/pom.xml b/pom.xml index 93905f34d53b34bb2d85aa352614bf1507ac2564..b41941f0b21a3392f6d56bbeb40ce77baa16c1fc 100644 --- a/pom.xml +++ b/pom.xml @@ -100,8 +100,8 @@ 3.17.1 - 0.2.0-beta - 0.2.0-beta + 0.2.1-beta + 0.2.1-beta 1.0.3 1.0.2 1.0.6 @@ -110,7 +110,7 @@ 2.0.0 1.0.2-RELEASE - 2.0.35 + 2.0.36 true diff --git a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java index 34ebfd8704c4d7cc5af039078e9adab83929bf28..f4bdecccd93b7949e2ff6aaaea234906884946da 100644 --- a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java +++ b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java @@ -17,8 +17,7 @@ import java.util.Map; import static com.ctrip.framework.apollo.core.ApolloClientSystemConsts.*; import static com.ctrip.framework.apollo.core.ConfigConsts.APOLLO_META_KEY; -import static com.ctrip.framework.apollo.spring.config.PropertySourcesConstants.APOLLO_BOOTSTRAP_EAGER_LOAD_ENABLED; -import static com.ctrip.framework.apollo.spring.config.PropertySourcesConstants.APOLLO_BOOTSTRAP_ENABLED; +import static com.ctrip.framework.apollo.spring.config.PropertySourcesConstants.*; /** * @author liaozan diff --git a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurationPropertiesRegistry.java b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurationPropertiesRegistry.java index 9bd651eb29483da93dddeb3cdb1d4e13ce023251..a77a7f42841650f3c11960c26b5140431216cdc0 100644 --- a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurationPropertiesRegistry.java +++ b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurationPropertiesRegistry.java @@ -18,9 +18,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.Map; -import static org.springframework.beans.factory.config.PlaceholderConfigurerSupport.DEFAULT_PLACEHOLDER_PREFIX; -import static org.springframework.beans.factory.config.PlaceholderConfigurerSupport.DEFAULT_PLACEHOLDER_SUFFIX; -import static org.springframework.beans.factory.config.PlaceholderConfigurerSupport.DEFAULT_VALUE_SEPARATOR; +import static org.springframework.beans.factory.config.PlaceholderConfigurerSupport.*; /** * @author liaozan @@ -70,4 +68,4 @@ public class ConfigurationPropertiesRegistry implements SmartInitializingSinglet return !Modifier.isFinal(field.getModifiers()); } -} \ No newline at end of file +} diff --git a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/PropertySourceOrderUtils.java b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/PropertySourceOrderUtils.java index c1b0a1856b9814184256aa41c32477bdccef9d04..42d93e5e02538fe0360e5743ff72776a6d5413b4 100644 --- a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/PropertySourceOrderUtils.java +++ b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/PropertySourceOrderUtils.java @@ -11,8 +11,7 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import static com.ctrip.framework.apollo.spring.config.PropertySourcesConstants.APOLLO_BOOTSTRAP_PROPERTY_SOURCE_NAME; -import static com.ctrip.framework.apollo.spring.config.PropertySourcesConstants.APOLLO_PROPERTY_SOURCE_NAME; +import static com.ctrip.framework.apollo.spring.config.PropertySourcesConstants.*; /** * @author liaozan @@ -51,4 +50,4 @@ public class PropertySourceOrderUtils { DefaultPropertiesPropertySource.moveToEnd(environment); } -} \ No newline at end of file +} diff --git a/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceConsumerRpcFilter.java b/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceConsumerRpcFilter.java index b7a2404fb8493e6d052de48d375c40eaea133577..11afad3ec65c170859efffcdc9f55970b6bc9fa5 100644 --- a/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceConsumerRpcFilter.java +++ b/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceConsumerRpcFilter.java @@ -19,4 +19,4 @@ public class TraceConsumerRpcFilter implements Filter { return invoker.invoke(invocation); } -} \ No newline at end of file +} diff --git a/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceProviderRpcFilter.java b/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceProviderRpcFilter.java index fc3b6f514096598c6fee033cf05a75340ba531b7..1f8546950c266086f45e92c50637b948980486ba 100644 --- a/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceProviderRpcFilter.java +++ b/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceProviderRpcFilter.java @@ -19,4 +19,4 @@ public class TraceProviderRpcFilter implements Filter { return invoker.invoke(invocation); } -} \ No newline at end of file +} diff --git a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java index 9d42bbd928c2bfb4543065608e374307a76874ae..e584472e1dd63168e35b548d28346d287d1291f7 100644 --- a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java +++ b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java @@ -11,8 +11,7 @@ import org.springframework.boot.logging.LoggingSystem; import java.util.Set; -import static com.ctrip.framework.apollo.enums.PropertyChangeType.ADDED; -import static com.ctrip.framework.apollo.enums.PropertyChangeType.MODIFIED; +import static com.ctrip.framework.apollo.enums.PropertyChangeType.*; import static org.springframework.boot.logging.LoggingSystem.ROOT_LOGGER_NAME; /** diff --git a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java index d1a776e23cd45ccaec3ffaf3eed906f369fed615..4dc657e1e07fa2e960564aff95db43c611bd0b19 100644 --- a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java +++ b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java @@ -25,8 +25,7 @@ import java.util.List; import java.util.Map; import java.util.function.Supplier; -import static java.util.Collections.emptyList; -import static java.util.Collections.emptyMap; +import static java.util.Collections.*; /** * @author liaozan diff --git a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdColumnField.java b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdColumnField.java index 035484ed2a30083649ed20ce77be701e9f45aba6..20b761b4a0658b9c01e4a514a8de8a8f75659d32 100644 --- a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdColumnField.java +++ b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdColumnField.java @@ -7,9 +7,7 @@ import lombok.Getter; import java.lang.invoke.MethodHandle; import java.lang.reflect.Field; -import static java.lang.invoke.MethodHandles.Lookup; -import static java.lang.invoke.MethodHandles.lookup; -import static java.lang.invoke.MethodHandles.privateLookupIn; +import static java.lang.invoke.MethodHandles.*; /** * @author liaozan diff --git a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/constraint/IgnoreConstraintCheck.java b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/constraint/IgnoreConstraintCheck.java index ee11635e028fc860f6e3da5c78bf3c4614b287dc..04adb758908704aecda66162fcb0b7f0b1369cd3 100644 --- a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/constraint/IgnoreConstraintCheck.java +++ b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/constraint/IgnoreConstraintCheck.java @@ -11,4 +11,4 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) public @interface IgnoreConstraintCheck { -} \ No newline at end of file +} diff --git a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/sql/injector/DefaultMethodSqlInjector.java b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/sql/injector/DefaultMethodSqlInjector.java index a69b22ee4069ec61c6d98b9c48e0bdbc01ca0065..06cc345a445c77ea10df290755ce7db98226a4e2 100644 --- a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/sql/injector/DefaultMethodSqlInjector.java +++ b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/sql/injector/DefaultMethodSqlInjector.java @@ -14,9 +14,7 @@ import lombok.extern.slf4j.Slf4j; import java.util.List; import java.util.Set; -import static com.schbrain.framework.autoconfigure.mybatis.constant.MybatisConstants.CREATE_TIME; -import static com.schbrain.framework.autoconfigure.mybatis.constant.MybatisConstants.DELETE_VERSION; -import static com.schbrain.framework.autoconfigure.mybatis.constant.MybatisConstants.MODIFY_TIME; +import static com.schbrain.framework.autoconfigure.mybatis.constant.MybatisConstants.*; /** * @author liaozan diff --git a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java index f463bb3082c107f2f608ca21ab066054a4207b89..244efb863daa9c83cbda2ab6b8bba316a8a1e9a3 100644 --- a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java +++ b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java @@ -21,6 +21,7 @@ import com.schbrain.framework.autoconfigure.oss.bean.*; import com.schbrain.framework.autoconfigure.oss.exception.OssException; import com.schbrain.framework.autoconfigure.oss.properties.OssProperties; import com.schbrain.framework.autoconfigure.oss.properties.OssProperties.StsProperties; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -47,6 +48,7 @@ public class OssUtils { private static DefaultAcsClient stsAcsClient; + @Getter private static OssProperties ossProperties; private static StsProperties stsProperties; @@ -72,10 +74,6 @@ public class OssUtils { } } - public static OssProperties getOssProperties() { - return ossProperties; - } - public static OSSClient getOssClient() { if (ossClient == null) { throw new OssException("Oss client is null"); diff --git a/support/schbrain-base-dao/src/main/java/com/schbrain/framework/dao/mybatis/annotation/MapperConfig.java b/support/schbrain-base-dao/src/main/java/com/schbrain/framework/dao/mybatis/annotation/MapperConfig.java index d7dd032636732fe936786baa3ef2491ee6efb04a..25aa4b412c4925e70fc6a4b8623f94d4d42ef849 100644 --- a/support/schbrain-base-dao/src/main/java/com/schbrain/framework/dao/mybatis/annotation/MapperConfig.java +++ b/support/schbrain-base-dao/src/main/java/com/schbrain/framework/dao/mybatis/annotation/MapperConfig.java @@ -16,4 +16,4 @@ public @interface MapperConfig { String tableName(); -} \ No newline at end of file +} diff --git a/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/env/DefaultPropertiesEnvironmentPostProcessor.java b/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/env/DefaultPropertiesEnvironmentPostProcessor.java index 09ad12e42c51b4693c6ebcbad3268a62b6b1dd05..2817ee13ab200b67d336e9178d38e471c020823b 100644 --- a/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/env/DefaultPropertiesEnvironmentPostProcessor.java +++ b/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/env/DefaultPropertiesEnvironmentPostProcessor.java @@ -58,8 +58,8 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro // mvc defaultProperties.put("spring.mvc.throw-exception-if-no-handler-found", true); // datetime - defaultProperties.put("spring.mvc.format.date", DatePattern.NORM_DATE_PATTERN); - defaultProperties.put("spring.mvc.format.time", DatePattern.NORM_TIME_PATTERN); + defaultProperties.put("spring.mvc.format.date", DatePattern.NORM_DATETIME_PATTERN); + defaultProperties.put("spring.mvc.format.time", DatePattern.NORM_DATETIME_PATTERN); defaultProperties.put("spring.mvc.format.date-time", DatePattern.NORM_DATETIME_PATTERN); defaultProperties.put("spring.jackson.date-format", DatePattern.NORM_DATETIME_PATTERN); defaultProperties.put("spring.jackson.time-zone", TimeZone.getDefault().getID());