Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
matrix
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
mall
arch
matrix
Commits
656646f7
Commit
656646f7
authored
Mar 27, 2020
by
qiuweili123
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add springboot2.2.5
parent
a9b2085d
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
142 additions
and
29 deletions
+142
-29
FastJsonSerializer.java
common-util/src/main/java/com/secoo/mall/common/serializer/FastJsonSerializer.java
+12
-22
pom.xml
matrix-mq/matrix-mq-rocketmq-core/pom.xml
+12
-0
pom.xml
matrix-protocol/matrix-protocol-core/pom.xml
+4
-0
AbsProtocolExceptionHandler.java
matrix-protocol/matrix-protocol-core/src/main/java/com/secoo/mall/common/handler/AbsProtocolExceptionHandler.java
+10
-2
MatrixResponseExceptionListener.java
matrix-protocol/matrix-protocol-dubbo-core/src/main/java/com/secoo/mall/dubbo/listener/MatrixResponseExceptionListener.java
+7
-2
ControllerResponseAdvice.java
matrix-protocol/matrix-protocol-web-core/src/main/java/com/secoo/mall/web/advice/ControllerResponseAdvice.java
+85
-2
pom.xml
pom.xml
+12
-1
No files found.
common-util/src/main/java/com/secoo/mall/common/serializer/FastJsonSerializer.java
View file @
656646f7
package
com
.
secoo
.
mall
.
common
.
serializer
;
package
com
.
secoo
.
mall
.
common
.
serializer
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.parser.ParserConfig
;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
com.alibaba.fastjson.support.config.FastJsonConfig
;
import
com.alibaba.fastjson.support.config.FastJsonConfig
;
import
com.alibaba.fastjson.util.IOUtils
;
import
com.secoo.mall.common.core.exception.SystemInternalException
;
import
com.secoo.mall.common.core.exception.SystemInternalException
;
import
com.secoo.mall.common.core.serializer.MatrixSerializer
;
import
com.secoo.mall.common.core.serializer.MatrixSerializer
;
import
lombok.Setter
;
import
lombok.Setter
;
...
@@ -15,42 +18,29 @@ public class FastJsonSerializer<T> implements MatrixSerializer<T> {
...
@@ -15,42 +18,29 @@ public class FastJsonSerializer<T> implements MatrixSerializer<T> {
this
.
type
=
type
;
this
.
type
=
type
;
}
}
private
final
static
ParserConfig
defaultRedisConfig
=
new
ParserConfig
();
@Override
static
{
public
byte
[]
serialize
(
T
t
)
{
defaultRedisConfig
.
setAutoTypeSupport
(
true
);
if
(
t
==
null
)
{
}
public
byte
[]
serialize
(
T
object
)
{
if
(
object
==
null
)
{
return
new
byte
[
0
];
return
new
byte
[
0
];
}
}
try
{
try
{
return
JSON
.
toJSONBytes
(
return
JSON
.
toJSONBytes
(
object
,
SerializerFeature
.
WriteClassName
);
fastJsonConfig
.
getCharset
(),
t
,
fastJsonConfig
.
getSerializeConfig
(),
fastJsonConfig
.
getSerializeFilters
(),
fastJsonConfig
.
getDateFormat
(),
JSON
.
DEFAULT_GENERATE_FEATURE
,
fastJsonConfig
.
getSerializerFeatures
()
);
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
throw
new
SystemInternalException
();
throw
new
SystemInternalException
();
}
}
}
}
@Override
public
T
deserialize
(
byte
[]
bytes
)
{
public
T
deserialize
(
byte
[]
bytes
)
{
if
(
bytes
==
null
||
bytes
.
length
==
0
)
{
if
(
bytes
==
null
||
bytes
.
length
==
0
)
{
return
null
;
return
null
;
}
}
try
{
try
{
return
(
T
)
JSON
.
parseObject
(
return
JSON
.
parseObject
(
new
String
(
bytes
,
IOUtils
.
UTF8
),
type
,
defaultRedisConfig
);
bytes
,
fastJsonConfig
.
getCharset
(),
type
,
fastJsonConfig
.
getParserConfig
(),
fastJsonConfig
.
getParseProcess
(),
JSON
.
DEFAULT_PARSER_FEATURE
,
fastJsonConfig
.
getFeatures
()
);
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
throw
new
SystemInternalException
();
throw
new
SystemInternalException
();
}
}
...
...
matrix-mq/matrix-mq-rocketmq-core/pom.xml
View file @
656646f7
...
@@ -19,6 +19,18 @@
...
@@ -19,6 +19,18 @@
<groupId>
org.apache.rocketmq
</groupId>
<groupId>
org.apache.rocketmq
</groupId>
<artifactId>
rocketmq-client
</artifactId>
<artifactId>
rocketmq-client
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-messaging
</artifactId>
</dependency>
<dependency>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java
</artifactId>
</dependency>
<dependency>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java-util
</artifactId>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
matrix-protocol/matrix-protocol-core/pom.xml
View file @
656646f7
...
@@ -42,6 +42,10 @@
...
@@ -42,6 +42,10 @@
<artifactId>
spring-web
</artifactId>
<artifactId>
spring-web
</artifactId>
<optional>
true
</optional>
<optional>
true
</optional>
</dependency>
</dependency>
<dependency>
<groupId>
jakarta.servlet
</groupId>
<artifactId>
jakarta.servlet-api
</artifactId>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
<resources>
<resources>
...
...
matrix-protocol/matrix-protocol-core/src/main/java/com/secoo/mall/common/handler/ProtocolExceptionHandler.java
→
matrix-protocol/matrix-protocol-core/src/main/java/com/secoo/mall/common/handler/
Abs
ProtocolExceptionHandler.java
View file @
656646f7
...
@@ -13,8 +13,9 @@ import org.springframework.context.i18n.LocaleContextHolder;
...
@@ -13,8 +13,9 @@ import org.springframework.context.i18n.LocaleContextHolder;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
public
class
ProtocolExceptionHandler
{
public
abstract
class
Abs
ProtocolExceptionHandler
{
@Resource
@Resource
private
MessageSource
messageSource
;
private
MessageSource
messageSource
;
...
@@ -25,6 +26,8 @@ public class ProtocolExceptionHandler {
...
@@ -25,6 +26,8 @@ public class ProtocolExceptionHandler {
@ExceptionHandler
({
Exception
.
class
})
@ExceptionHandler
({
Exception
.
class
})
public
Object
exceptionHandler
(
Exception
e
)
{
public
Object
exceptionHandler
(
Exception
e
)
{
try
{
try
{
logReqParams
();
if
(
exceptionProcessor
==
null
)
{
if
(
exceptionProcessor
==
null
)
{
throw
e
;
throw
e
;
}
}
...
@@ -57,8 +60,13 @@ public class ProtocolExceptionHandler {
...
@@ -57,8 +60,13 @@ public class ProtocolExceptionHandler {
try
{
try
{
return
messageSource
.
getMessage
(
e
.
getMsg
(),
e
.
getArgs
(),
LocaleContextHolder
.
getLocale
());
return
messageSource
.
getMessage
(
e
.
getMsg
(),
e
.
getArgs
(),
LocaleContextHolder
.
getLocale
());
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
return
String
.
format
(
"[%s] not exsits.Please check config message_%s.properties."
,
e
.
getMsg
(),
LocaleContextHolder
.
getLocale
());
return
String
.
format
(
"[%s] not exsits.Please check config message_%s.properties."
,
e
.
getMsg
(),
LocaleContextHolder
.
getLocale
());
}
}
}
}
/**
* 打印请求参数包括args和reqbody
*/
protected
abstract
void
logReqParams
();
}
}
matrix-protocol/matrix-protocol-dubbo-core/src/main/java/com/secoo/mall/dubbo/listener/MatrixResponseExceptionListener.java
View file @
656646f7
...
@@ -3,7 +3,7 @@ package com.secoo.mall.dubbo.listener;
...
@@ -3,7 +3,7 @@ package com.secoo.mall.dubbo.listener;
import
com.secoo.mall.common.core.exception.BusinessException
;
import
com.secoo.mall.common.core.exception.BusinessException
;
import
com.secoo.mall.common.core.exception.ParameterException
;
import
com.secoo.mall.common.core.exception.ParameterException
;
import
com.secoo.mall.common.core.exception.SystemInternalException
;
import
com.secoo.mall.common.core.exception.SystemInternalException
;
import
com.secoo.mall.common.handler.ProtocolExceptionHandler
;
import
com.secoo.mall.common.handler.
Abs
ProtocolExceptionHandler
;
import
com.secoo.mall.common.util.response.ResponseUtil
;
import
com.secoo.mall.common.util.response.ResponseUtil
;
import
org.apache.dubbo.rpc.Invocation
;
import
org.apache.dubbo.rpc.Invocation
;
import
org.apache.dubbo.rpc.Invoker
;
import
org.apache.dubbo.rpc.Invoker
;
...
@@ -12,7 +12,7 @@ import org.springframework.web.method.annotation.ExceptionHandlerMethodResolver;
...
@@ -12,7 +12,7 @@ import org.springframework.web.method.annotation.ExceptionHandlerMethodResolver;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
public
class
MatrixResponseExceptionListener
extends
ProtocolExceptionHandler
implements
ExceptionListener
{
public
class
MatrixResponseExceptionListener
extends
Abs
ProtocolExceptionHandler
implements
ExceptionListener
{
private
ExceptionHandlerMethodResolver
resolver
;
private
ExceptionHandlerMethodResolver
resolver
;
public
MatrixResponseExceptionListener
()
{
public
MatrixResponseExceptionListener
()
{
...
@@ -52,4 +52,9 @@ public class MatrixResponseExceptionListener extends ProtocolExceptionHandler im
...
@@ -52,4 +52,9 @@ public class MatrixResponseExceptionListener extends ProtocolExceptionHandler im
}
}
return
exception
;
return
exception
;
}
}
@Override
protected
void
logReqParams
()
{
//unimpimplements
}
}
}
matrix-protocol/matrix-protocol-web-core/src/main/java/com/secoo/mall/web/advice/ControllerResponseAdvice.java
View file @
656646f7
package
com
.
secoo
.
mall
.
web
.
advice
;
package
com
.
secoo
.
mall
.
web
.
advice
;
import
com.secoo.mall.common.handler.ProtocolExceptionHandler
;
import
com.alibaba.fastjson.JSON
;
import
com.secoo.mall.common.handler.AbsProtocolExceptionHandler
;
import
com.secoo.mall.common.util.file.IOUtil
;
import
com.secoo.mall.common.util.response.ResponseUtil
;
import
com.secoo.mall.common.util.response.ResponseUtil
;
import
com.secoo.mall.common.util.string.StringUtil
;
import
com.secoo.mall.common.util.web.WebUtil
;
import
com.secoo.mall.web.annotation.ApiController
;
import
com.secoo.mall.web.annotation.ApiController
;
import
com.secoo.mall.web.annotation.ApiIgnoreJson
;
import
com.secoo.mall.web.annotation.ApiIgnoreJson
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.core.MethodParameter
;
import
org.springframework.core.MethodParameter
;
import
org.springframework.core.annotation.AnnotationUtils
;
import
org.springframework.core.annotation.AnnotationUtils
;
import
org.springframework.http.HttpInputMessage
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.converter.HttpMessageConverter
;
import
org.springframework.http.converter.HttpMessageConverter
;
import
org.springframework.http.server.ServerHttpRequest
;
import
org.springframework.http.server.ServerHttpRequest
;
import
org.springframework.http.server.ServerHttpResponse
;
import
org.springframework.http.server.ServerHttpResponse
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestControllerAdvice
;
import
org.springframework.web.bind.annotation.RestControllerAdvice
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdvice
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.lang.reflect.Type
;
import
java.util.Map
;
import
java.util.Optional
;
@RestControllerAdvice
(
annotations
=
ApiController
.
class
)
@RestControllerAdvice
(
annotations
=
ApiController
.
class
)
public
class
ControllerResponseAdvice
extends
ProtocolExceptionHandler
implements
ResponseBodyAdvice
<
Object
>
{
@Slf4j
public
class
ControllerResponseAdvice
extends
AbsProtocolExceptionHandler
implements
ResponseBodyAdvice
<
Object
>,
RequestBodyAdvice
{
private
final
static
String
REQUEST_BODY
=
"requestBody"
;
@Override
@Override
public
boolean
supports
(
MethodParameter
methodParameter
,
Class
<?
extends
HttpMessageConverter
<?>>
aClass
)
{
public
boolean
supports
(
MethodParameter
methodParameter
,
Class
<?
extends
HttpMessageConverter
<?>>
aClass
)
{
...
@@ -26,4 +47,66 @@ public class ControllerResponseAdvice extends ProtocolExceptionHandler implement
...
@@ -26,4 +47,66 @@ public class ControllerResponseAdvice extends ProtocolExceptionHandler implement
return
ResponseUtil
.
getSuccessResponse
(
o
);
return
ResponseUtil
.
getSuccessResponse
(
o
);
}
}
@Override
protected
void
logReqParams
()
{
HttpServletRequest
request
=
WebUtil
.
getRequest
();
String
uri
=
request
.
getRequestURI
();
String
queryString
=
request
.
getQueryString
();
String
params
=
getParams
(
request
);
StringBuilder
stringBuilder
=
new
StringBuilder
();
stringBuilder
.
append
(
"uri:"
).
append
(
uri
).
append
(
","
);
if
(
StringUtil
.
isNotEmpty
(
queryString
))
{
stringBuilder
.
append
(
"queryString:"
).
append
(
queryString
).
append
(
","
);
}
if
(
StringUtil
.
isNotEmpty
(
params
))
{
stringBuilder
.
append
(
"params:"
).
append
(
params
);
}
log
.
info
(
"req:{}"
,
stringBuilder
);
}
private
String
getParams
(
HttpServletRequest
request
)
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
// 获取内容格式
String
contentType
=
request
.
getContentType
();
if
(
StringUtil
.
isNotBlank
(
contentType
))
{
contentType
=
contentType
.
split
(
";"
)[
0
];
}
// form表单格式 表单形式可以从 ParameterMap中获取
if
(
MediaType
.
APPLICATION_FORM_URLENCODED_VALUE
.
equalsIgnoreCase
(
contentType
))
{
// 获取参数
Map
<
String
,
String
[]>
parameterMap
=
request
.
getParameterMap
();
if
(
parameterMap
!=
null
)
{
for
(
Map
.
Entry
<
String
,
String
[]>
entry
:
parameterMap
.
entrySet
())
{
stringBuilder
.
append
(
entry
.
getKey
()).
append
(
":"
).
append
(
entry
.
getValue
()[
0
]);
}
}
}
Optional
.
ofNullable
(
WebUtil
.
getAttribute
(
REQUEST_BODY
)).
ifPresent
(
param
->
stringBuilder
.
append
(
param
));
return
stringBuilder
.
toString
();
}
@Override
public
boolean
supports
(
MethodParameter
methodParameter
,
Type
type
,
Class
<?
extends
HttpMessageConverter
<?>>
aClass
)
{
return
methodParameter
.
getParameterAnnotation
(
RequestBody
.
class
)
!=
null
;
}
@Override
public
HttpInputMessage
beforeBodyRead
(
HttpInputMessage
httpInputMessage
,
MethodParameter
methodParameter
,
Type
type
,
Class
<?
extends
HttpMessageConverter
<?>>
aClass
)
throws
IOException
{
return
httpInputMessage
;
}
@Override
public
Object
afterBodyRead
(
Object
o
,
HttpInputMessage
httpInputMessage
,
MethodParameter
methodParameter
,
Type
type
,
Class
<?
extends
HttpMessageConverter
<?>>
aClass
)
{
WebUtil
.
setAttribute
(
REQUEST_BODY
,
JSON
.
toJSONString
(
o
));
return
o
;
}
@Override
public
Object
handleEmptyBody
(
Object
o
,
HttpInputMessage
httpInputMessage
,
MethodParameter
methodParameter
,
Type
type
,
Class
<?
extends
HttpMessageConverter
<?>>
aClass
)
{
return
o
;
}
}
}
pom.xml
View file @
656646f7
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-dependencies
</artifactId>
<artifactId>
spring-boot-dependencies
</artifactId>
<version>
2.
1.9
.RELEASE
</version>
<version>
2.
2.5
.RELEASE
</version>
<type>
pom
</type>
<type>
pom
</type>
<scope>
import
</scope>
<scope>
import
</scope>
</dependency>
</dependency>
...
@@ -230,8 +230,19 @@
...
@@ -230,8 +230,19 @@
<artifactId>
kryo
</artifactId>
<artifactId>
kryo
</artifactId>
<version>
4.0.2
</version>
<version>
4.0.2
</version>
</dependency>
</dependency>
<!--protobuf-->
<dependency>
<dependency>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java
</artifactId>
<version>
3.11.4
</version>
</dependency>
<dependency>
<groupId>
com.google.protobuf
</groupId>
<artifactId>
protobuf-java-util
</artifactId>
<version>
3.11.4
</version>
</dependency>
<dependency>
<groupId>
com.google.guava
</groupId>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
<artifactId>
guava
</artifactId>
<version>
20.0
</version>
<version>
20.0
</version>
...
...
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