Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-parent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
schbrain-parent
Commits
65202db9
Commit
65202db9
authored
Sep 14, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor datetime converters to support both long and string
parent
727f42ec
Changes
40
Show whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
268 additions
and
373 deletions
+268
-373
commons/common-util/src/main/java/com/schbrain/common/util/PageUtils.java
...til/src/main/java/com/schbrain/common/util/PageUtils.java
+2
-3
commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java
...l/src/main/java/com/schbrain/common/util/StreamUtils.java
+1
-3
commons/common-util/src/main/java/com/schbrain/common/util/support/ValidateSupport.java
...ava/com/schbrain/common/util/support/ValidateSupport.java
+1
-1
commons/common-util/src/main/java/com/schbrain/common/util/support/trace/TraceParam.java
...va/com/schbrain/common/util/support/trace/TraceParam.java
+1
-1
commons/common/src/main/java/com/schbrain/common/annotation/IgnoreLogin.java
...main/java/com/schbrain/common/annotation/IgnoreLogin.java
+1
-1
commons/common/src/main/java/com/schbrain/common/entity/PaginationInfo.java
.../main/java/com/schbrain/common/entity/PaginationInfo.java
+1
-4
commons/module-tree/src/main/java/com/schbrain/common/module/tree/TreeNodeProcessor.java
...va/com/schbrain/common/module/tree/TreeNodeProcessor.java
+1
-1
commons/web-common/src/main/java/com/schbrain/common/web/ServletComponentConfiguration.java
...om/schbrain/common/web/ServletComponentConfiguration.java
+0
-7
commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java
...a/com/schbrain/common/web/WebCommonAutoConfiguration.java
+3
-3
commons/web-common/src/main/java/com/schbrain/common/web/annotation/ResponseWrapOption.java
...om/schbrain/common/web/annotation/ResponseWrapOption.java
+1
-1
commons/web-common/src/main/java/com/schbrain/common/web/argument/BodyParamMethodArgumentResolver.java
.../common/web/argument/BodyParamMethodArgumentResolver.java
+4
-8
commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java
...schbrain/common/web/exception/GlobalExceptionHandler.java
+2
-4
commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java
...com/schbrain/common/web/servlet/RequestLoggingFilter.java
+1
-2
commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestWrapperFilter.java
...com/schbrain/common/web/servlet/RequestWrapperFilter.java
+0
-31
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/Jsr310Converters.java
...hbrain/common/web/support/converter/Jsr310Converters.java
+0
-95
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConditionalConverter.java
...port/converter/datetime/DateTimeConditionalConverter.java
+84
-0
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConvertersWebMvcConfigurer.java
...onverter/datetime/DateTimeConvertersWebMvcConfigurer.java
+20
-0
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToDateConverter.java
...web/support/converter/datetime/StringToDateConverter.java
+26
-0
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateConverter.java
...upport/converter/datetime/StringToLocalDateConverter.java
+32
-0
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateTimeConverter.java
...rt/converter/datetime/StringToLocalDateTimeConverter.java
+26
-0
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalTimeConverter.java
...upport/converter/datetime/StringToLocalTimeConverter.java
+32
-0
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/AbstractSignatureValidationInterceptor.java
...ort/signature/AbstractSignatureValidationInterceptor.java
+0
-81
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContext.java
...hbrain/common/web/support/signature/SignatureContext.java
+0
-12
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContextUtil.java
...in/common/web/support/signature/SignatureContextUtil.java
+0
-47
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureValidationException.java
...n/web/support/signature/SignatureValidationException.java
+0
-22
commons/web-common/src/main/java/com/schbrain/common/web/utils/RequestContentCachingUtils.java
...schbrain/common/web/utils/RequestContentCachingUtils.java
+9
-14
pom.xml
pom.xml
+3
-3
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java
...olloConfigurationInitializerEnvironmentPostProcessor.java
+1
-2
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurationPropertiesRegistry.java
...autoconfigure/apollo/ConfigurationPropertiesRegistry.java
+2
-4
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/PropertySourceOrderUtils.java
...k/autoconfigure/apollo/util/PropertySourceOrderUtils.java
+2
-3
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceConsumerRpcFilter.java
...rk/autoconfigure/dubbo/filter/TraceConsumerRpcFilter.java
+1
-1
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceProviderRpcFilter.java
...rk/autoconfigure/dubbo/filter/TraceProviderRpcFilter.java
+1
-1
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java
...toconfigure/logger/apollo/LoggingLevelChangeListener.java
+1
-2
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java
...framework/autoconfigure/mybatis/base/BaseServiceImpl.java
+1
-2
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdColumnField.java
...framework/autoconfigure/mybatis/biz/BizIdColumnField.java
+1
-3
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/constraint/IgnoreConstraintCheck.java
...toconfigure/mybatis/constraint/IgnoreConstraintCheck.java
+1
-1
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/sql/injector/DefaultMethodSqlInjector.java
...figure/mybatis/sql/injector/DefaultMethodSqlInjector.java
+1
-3
starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java
...m/schbrain/framework/autoconfigure/oss/util/OssUtils.java
+2
-4
support/schbrain-base-dao/src/main/java/com/schbrain/framework/dao/mybatis/annotation/MapperConfig.java
...hbrain/framework/dao/mybatis/annotation/MapperConfig.java
+1
-1
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/env/DefaultPropertiesEnvironmentPostProcessor.java
...spring/env/DefaultPropertiesEnvironmentPostProcessor.java
+2
-2
No files found.
commons/common-util/src/main/java/com/schbrain/common/util/PageUtils.java
View file @
65202db9
...
...
@@ -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
...
...
commons/common-util/src/main/java/com/schbrain/common/util/StreamUtils.java
View file @
65202db9
...
...
@@ -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
...
...
commons/common-util/src/main/java/com/schbrain/common/util/support/ValidateSupport.java
View file @
65202db9
commons/common-util/src/main/java/com/schbrain/common/util/support/trace/TraceParam.java
View file @
65202db9
commons/common/src/main/java/com/schbrain/common/annotation/IgnoreLogin.java
View file @
65202db9
commons/common/src/main/java/com/schbrain/common/entity/PaginationInfo.java
View file @
65202db9
...
...
@@ -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
...
...
commons/module-tree/src/main/java/com/schbrain/common/module/tree/TreeNodeProcessor.java
View file @
65202db9
commons/web-common/src/main/java/com/schbrain/common/web/ServletComponentConfiguration.java
View file @
65202db9
...
...
@@ -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
)
...
...
commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java
View file @
65202db9
...
...
@@ -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.
Jsr310DateTime
WebMvcConfigurer
;
import
com.schbrain.common.web.support.converter.
datetime.DateTimeConverters
WebMvcConfigurer
;
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
defaultJsr310DateTime
WebMvcConfigurer
()
{
return
new
Jsr310DateTime
WebMvcConfigurer
();
public
DateTimeConvertersWebMvcConfigurer
defaultDateTimeConverters
WebMvcConfigurer
()
{
return
new
DateTimeConverters
WebMvcConfigurer
();
}
@Bean
...
...
commons/web-common/src/main/java/com/schbrain/common/web/annotation/ResponseWrapOption.java
View file @
65202db9
commons/web-common/src/main/java/com/schbrain/common/web/argument/BodyParamMethodArgumentResolver.java
View file @
65202db9
...
...
@@ -64,18 +64,14 @@ public class BodyParamMethodArgumentResolver extends AbstractNamedValueMethodArg
return
objectMapper
.
constructType
(
parameterType
);
}
private
JsonNode
getRequestBody
(
NativeWebRequest
nativeW
ebRequest
)
throws
IOException
{
JsonNode
requestBody
=
(
JsonNode
)
nativeW
ebRequest
.
getAttribute
(
REQUEST_BODY_CACHE
,
SCOPE_REQUEST
);
private
JsonNode
getRequestBody
(
NativeWebRequest
w
ebRequest
)
throws
IOException
{
JsonNode
requestBody
=
(
JsonNode
)
w
ebRequest
.
getAttribute
(
REQUEST_BODY_CACHE
,
SCOPE_REQUEST
);
if
(
requestBody
==
null
)
{
HttpServletRequest
request
=
wrap
Request
(
nativeWebRequest
);
HttpServletRequest
request
=
wrap
IfRequired
(
webRequest
.
getNativeRequest
(
HttpServletRequest
.
class
)
);
requestBody
=
objectMapper
.
readTree
(
request
.
getInputStream
());
nativeW
ebRequest
.
setAttribute
(
REQUEST_BODY_CACHE
,
requestBody
,
SCOPE_REQUEST
);
w
ebRequest
.
setAttribute
(
REQUEST_BODY_CACHE
,
requestBody
,
SCOPE_REQUEST
);
}
return
requestBody
;
}
private
HttpServletRequest
wrapRequest
(
NativeWebRequest
request
)
{
return
wrapIfRequired
(
request
.
getNativeRequest
(
HttpServletRequest
.
class
));
}
}
commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java
View file @
65202db9
...
...
@@ -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
...
...
commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java
View file @
65202db9
...
...
@@ -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
.*;
/**
* 请求日志拦截器
...
...
commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestWrapperFilter.java
deleted
100644 → 0
View file @
727f42ec
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
);
}
}
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/Jsr310Converters.java
deleted
100644 → 0
View file @
727f42ec
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
<
Converter
<?,
?>>
getConverters
()
{
List
<
Converter
<?,
?>>
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
<
Long
,
LocalDate
>
{
INSTANCE
;
@Override
public
LocalDate
convert
(
Long
source
)
{
return
LongToLocalDateTimeConverter
.
INSTANCE
.
convert
(
source
).
toLocalDate
();
}
}
public
enum
LongToLocalTimeConverter
implements
Converter
<
Long
,
LocalTime
>
{
INSTANCE
;
@Override
public
LocalTime
convert
(
Long
source
)
{
return
LongToLocalDateTimeConverter
.
INSTANCE
.
convert
(
source
).
toLocalTime
();
}
}
public
enum
LongToLocalDateTimeConverter
implements
Converter
<
Long
,
LocalDateTime
>
{
INSTANCE
;
@Override
public
LocalDateTime
convert
(
Long
source
)
{
return
ofInstant
(
Instant
.
ofEpochMilli
(
source
),
systemDefault
());
}
}
public
enum
StringToLocalDateConverter
implements
Converter
<
String
,
LocalDate
>
{
INSTANCE
;
@Override
public
LocalDate
convert
(
String
source
)
{
return
StringToLocalDateTimeConverter
.
INSTANCE
.
convert
(
source
).
toLocalDate
();
}
}
public
enum
StringToLocalTimeConverter
implements
Converter
<
String
,
LocalTime
>
{
INSTANCE
;
@Override
public
LocalTime
convert
(
String
source
)
{
return
StringToLocalDateTimeConverter
.
INSTANCE
.
convert
(
source
).
toLocalTime
();
}
}
public
enum
StringToLocalDateTimeConverter
implements
Converter
<
String
,
LocalDateTime
>
{
INSTANCE
;
@Override
public
LocalDateTime
convert
(
String
source
)
{
return
ofInstant
(
Instant
.
ofEpochMilli
(
Long
.
parseLong
(
source
)),
systemDefault
());
}
}
}
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/DateTimeConditionalConverter.java
0 → 100644
View file @
65202db9
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
<
T
>
implements
ConditionalGenericConverter
{
private
final
TypeDescriptor
targetType
;
private
final
TypeDescriptor
stringType
=
TypeDescriptor
.
valueOf
(
String
.
class
);
private
final
Map
<
String
,
DateTimeFormatter
>
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
<
ConvertiblePair
>
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
);
}
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/
Jsr310DateTime
WebMvcConfigurer.java
→
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/
datetime/DateTimeConverters
WebMvcConfigurer.java
View file @
65202db9
package
com.schbrain.common.web.support.converter
;
package
com.schbrain.common.web.support.converter
.datetime
;
import
org.springframework.format.FormatterRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
...
...
@@ -7,11 +7,14 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
* @author liaozan
* @since 2023/8/16
*/
public
class
Jsr310DateTime
WebMvcConfigurer
implements
WebMvcConfigurer
{
public
class
DateTimeConverters
WebMvcConfigurer
implements
WebMvcConfigurer
{
@Override
public
void
addFormatters
(
FormatterRegistry
registry
)
{
Jsr310Converters
.
getConverters
().
forEach
(
registry:
:
addConverter
);
registry
.
addConverter
(
StringToDateConverter
.
INSTANCE
);
registry
.
addConverter
(
StringToLocalTimeConverter
.
INSTANCE
);
registry
.
addConverter
(
StringToLocalDateConverter
.
INSTANCE
);
registry
.
addConverter
(
StringToLocalDateTimeConverter
.
INSTANCE
);
}
}
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToDateConverter.java
0 → 100644
View file @
65202db9
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
<
Date
>
{
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
);
}
}
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateConverter.java
0 → 100644
View file @
65202db9
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
<
LocalDate
>
{
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
);
}
}
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalDateTimeConverter.java
0 → 100644
View file @
65202db9
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
<
LocalDateTime
>
{
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
);
}
}
commons/web-common/src/main/java/com/schbrain/common/web/support/converter/datetime/StringToLocalTimeConverter.java
0 → 100644
View file @
65202db9
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
<
LocalTime
>
{
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
);
}
}
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/AbstractSignatureValidationInterceptor.java
deleted
100644 → 0
View file @
727f42ec
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
<
T
extends
SignatureContext
>
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
<
String
>
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
);
}
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContext.java
deleted
100644 → 0
View file @
727f42ec
package
com.schbrain.common.web.support.signature
;
import
lombok.Data
;
@Data
public
class
SignatureContext
{
private
String
appKey
;
private
String
appSecret
;
}
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureContextUtil.java
deleted
100644 → 0
View file @
727f42ec
package
com.schbrain.common.web.support.signature
;
import
java.util.Optional
;
import
java.util.function.Supplier
;
public
class
SignatureContextUtil
{
private
static
final
ThreadLocal
<
SignatureContext
>
LOCAL
=
new
InheritableThreadLocal
<>();
private
static
final
Supplier
<
SignatureValidationException
>
EXCEPTION_SUPPLIER
=
SignatureValidationException:
:
new
;
/**
* 取值
*/
public
static
<
T
extends
SignatureContext
>
T
get
(
Class
<
T
>
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
<
T
extends
SignatureContext
>
void
set
(
T
signatureContext
)
{
LOCAL
.
set
(
signatureContext
);
}
/**
* 移除
*/
public
static
void
clear
()
{
LOCAL
.
remove
();
}
}
commons/web-common/src/main/java/com/schbrain/common/web/support/signature/SignatureValidationException.java
deleted
100644 → 0
View file @
727f42ec
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
);
}
}
commons/web-common/src/main/java/com/schbrain/common/web/utils/RequestContentCachingUtils.java
View file @
65202db9
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
ContentCachingRequest
Wrapper
)
{
return
request
;
}
else
{
return
new
ContentCachingRequest
(
request
);
return
new
ContentCachingRequest
Wrapper
(
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
)
{
ContentCachingRequest
Wrapper
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
);
}
}
pom.xml
View file @
65202db9
...
...
@@ -100,8 +100,8 @@
<aliyun-sdk-oss.version>
3.17.1
</aliyun-sdk-oss.version>
<!-- alibabacloud new sdk -->
<aliyun-java-core.version>
0.2.
0
-beta
</aliyun-java-core.version>
<aliyun-gateway-pop.version>
0.2.
0
-beta
</aliyun-gateway-pop.version>
<aliyun-java-core.version>
0.2.
1
-beta
</aliyun-java-core.version>
<aliyun-gateway-pop.version>
0.2.
1
-beta
</aliyun-gateway-pop.version>
<alibabacloud-sts20150401.version>
1.0.3
</alibabacloud-sts20150401.version>
<alibabacloud-oss20190517.version>
1.0.2
</alibabacloud-oss20190517.version>
<alibabacloud-vod20170321.version>
1.0.6
</alibabacloud-vod20170321.version>
...
...
@@ -110,7 +110,7 @@
<!-- dingtalk -->
<alibaba-dingtalk-service-sdk.version>
2.0.0
</alibaba-dingtalk-service-sdk.version>
<cube-sdk-java.version>
1.0.2-RELEASE
</cube-sdk-java.version>
<dingtalk.version>
2.0.3
5
</dingtalk.version>
<dingtalk.version>
2.0.3
6
</dingtalk.version>
<!-- maven settings -->
<maven.compiler.showDeprecation>
true
</maven.compiler.showDeprecation>
...
...
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java
View file @
65202db9
...
...
@@ -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
...
...
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurationPropertiesRegistry.java
View file @
65202db9
...
...
@@ -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
...
...
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/PropertySourceOrderUtils.java
View file @
65202db9
...
...
@@ -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
...
...
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceConsumerRpcFilter.java
View file @
65202db9
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/TraceProviderRpcFilter.java
View file @
65202db9
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java
View file @
65202db9
...
...
@@ -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
;
/**
...
...
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java
View file @
65202db9
...
...
@@ -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
...
...
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdColumnField.java
View file @
65202db9
...
...
@@ -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
...
...
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/constraint/IgnoreConstraintCheck.java
View file @
65202db9
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/sql/injector/DefaultMethodSqlInjector.java
View file @
65202db9
...
...
@@ -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
...
...
starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java
View file @
65202db9
...
...
@@ -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"
);
...
...
support/schbrain-base-dao/src/main/java/com/schbrain/framework/dao/mybatis/annotation/MapperConfig.java
View file @
65202db9
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/env/DefaultPropertiesEnvironmentPostProcessor.java
View file @
65202db9
...
...
@@ -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_DATE
TIME
_PATTERN
);
defaultProperties
.
put
(
"spring.mvc.format.time"
,
DatePattern
.
NORM_
DATE
TIME_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
());
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment