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
b0484242
Commit
b0484242
authored
May 18, 2020
by
QIANGLU
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
d259d2b2
68407f58
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
44 additions
and
283 deletions
+44
-283
README.md
README.md
+20
-0
MatrixDynamicDataSource.java
matrix-datasource/matrix-datasource-core/src/main/java/com/secoo/mall/datasource/bean/MatrixDynamicDataSource.java
+1
-0
AbstractMessageConverter.java
matrix-mq/matrix-mq-rocketmq-core/src/main/java/com/secoo/mall/rocketmq/converter/AbstractMessageConverter.java
+3
-2
pom.xml
matrix-mybatis/matrix-mybatis-core/pom.xml
+0
-4
pom.xml
matrix-mybatis/matrix-mybatis-starter/pom.xml
+0
-4
MatrixDataSourceBootProperties.java
matrix-mybatis/matrix-mybatis-starter/src/main/java/com/secoo/mall/mybatis/spring/boot/autoconfigure/MatrixDataSourceBootProperties.java
+0
-10
MatrixMybatisAutoConfiguration.java
matrix-mybatis/matrix-mybatis-starter/src/main/java/com/secoo/mall/mybatis/spring/boot/autoconfigure/MatrixMybatisAutoConfiguration.java
+15
-35
MybatisApplicationContextInitializer.java
matrix-mybatis/matrix-mybatis-starter/src/main/java/com/secoo/mall/mybatis/spring/boot/initializer/MybatisApplicationContextInitializer.java
+0
-93
MybatisApplicationRunListener.java
matrix-mybatis/matrix-mybatis-starter/src/main/java/com/secoo/mall/mybatis/spring/boot/listener/MybatisApplicationRunListener.java
+0
-135
pom.xml
pom.xml
+5
-0
No files found.
README.md
View file @
b0484242
...
...
@@ -4,6 +4,24 @@ Matrix (矩阵)是一套组件增强套件,包括redis、rocketmq等中间件
# 组件
## V 2.x.x组件
主要进行组件进行
-
升级springboot到2.2.5
-
删除模块:
<br>
elasticsearch-starter、 mongodb-starter、monitor-starter、matrix-rocketmq-core
-
新增模块
<br>
1.
matrix-bigdata封装hbase、spark等针对大数据相关技术组件
1.
matrix-bus封装canal等涉及数据总线相关组件
-
调整模块:
<br>
1.
openfeign-starter->matrix-client-openfeign-starter
1.
redis-starter->matrix-datahelper-redis-starter
1.
rocketmq-starter->matrix-mq-rocketmq-starter
## V 1.x.x组件
-
[
common-core
](
common-core/README.md
)
:提供通用bean,核心注解,定义通用业务异常。
-
[
common-util
](
common-util/README.md
)
: 提供BeanUtil,BeanChecker、CollectionUtil等工具类。
...
...
@@ -36,6 +54,8 @@ Matrix (矩阵)是一套组件增强套件,包括redis、rocketmq等中间件
# 示例
-
[
matrix-sample
](
http://gitlab.secoo.com:8090/mall/arch/matrix-sample.git
)
# 期望
> 欢迎提出[issue](http://gitlab.secoo.com:8090/mall/arch/matrix/issues),帮助完善!
...
...
matrix-datasource/matrix-datasource-core/src/main/java/com/secoo/mall/datasource/bean/MatrixDynamicDataSource.java
View file @
b0484242
...
...
@@ -11,6 +11,7 @@ import java.util.List;
* 此数据源为支持@selectDataSource注解的多数据源使用
*/
@Slf4j
@Deprecated
public
class
MatrixDynamicDataSource
extends
AbsDataSource
{
@Override
...
...
matrix-mq/matrix-mq-rocketmq-core/src/main/java/com/secoo/mall/rocketmq/converter/AbstractMessageConverter.java
View file @
b0484242
...
...
@@ -286,4 +286,5 @@ public abstract class AbstractMessageConverter implements SmartMessageConverter
Object
payload
,
@Nullable
MessageHeaders
headers
,
@Nullable
Object
conversionHint
)
{
return
null
;
}
\ No newline at end of file
}
}
\ No newline at end of file
matrix-mybatis/matrix-mybatis-core/pom.xml
View file @
b0484242
...
...
@@ -17,10 +17,6 @@
<artifactId>
mybatis-plus
</artifactId>
<version>
${mybatis-plus.version}
</version>
</dependency>
<dependency>
<groupId>
com.secoo.mall
</groupId>
<artifactId>
matrix-datasource-druid
</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
...
...
matrix-mybatis/matrix-mybatis-starter/pom.xml
View file @
b0484242
...
...
@@ -29,10 +29,6 @@
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-aop
</artifactId>
</dependency>
<dependency>
<groupId>
com.secoo.mall
</groupId>
<artifactId>
config-starter
</artifactId>
</dependency>
</dependencies>
<build>
...
...
matrix-mybatis/matrix-mybatis-starter/src/main/java/com/secoo/mall/mybatis/spring/boot/autoconfigure/MatrixDataSourceBootProperties.java
deleted
100644 → 0
View file @
d259d2b2
package
com
.
secoo
.
mall
.
mybatis
.
spring
.
boot
.
autoconfigure
;
import
com.secoo.mall.datasource.properties.MatrixDataSourceProperties
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
@ConfigurationProperties
(
prefix
=
MatrixDataSourceBootProperties
.
PREFIX
)
public
class
MatrixDataSourceBootProperties
extends
MatrixDataSourceProperties
{
public
static
final
String
PREFIX
=
MatrixDataSourceProperties
.
PREFIX
+
".default"
;
}
matrix-mybatis/matrix-mybatis-starter/src/main/java/com/secoo/mall/mybatis/spring/boot/autoconfigure/MatrixMybatisAutoConfiguration.java
View file @
b0484242
...
...
@@ -2,13 +2,8 @@ package com.secoo.mall.mybatis.spring.boot.autoconfigure;
import
com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration
;
import
com.baomidou.mybatisplus.core.MybatisConfiguration
;
import
com.ctrip.framework.apollo.spring.boot.ApolloAutoConfiguration
;
import
com.secoo.mall.datasource.bean.MatrixDataSource
;
import
com.secoo.mall.datasource.factory.DataSourceFactory
;
import
com.secoo.mall.datasource.factory.DruidDataSourceFactory
;
import
com.secoo.mall.datasource.provider.ApolloDruidDataSourceProvider
;
import
com.secoo.mall.datasource.provider.DataSourceProvider
;
import
com.secoo.mall.datasource.util.SysUtil
;
import
com.baomidou.mybatisplus.core.config.GlobalConfig
;
;
import
com.secoo.mall.mybatis.bean.MatrixMybatisSqlSessionFactoryBean
;
import
com.secoo.mall.mybatis.config.MatrixMybatisConfiguration
;
import
com.secoo.mall.mybatis.config.MatrixMybatisGlobalConfig
;
...
...
@@ -29,51 +24,33 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
import
javax.annotation.Resource
;
import
javax.sql.DataSource
;
import
java.util.Optional
;
@Configuration
@EnableConfigurationProperties
({
MatrixMybatisBootProperties
.
class
})
@ConditionalOnClass
(
MatrixDataSource
.
class
)
@AutoConfigureBefore
({
DataSourceAutoConfiguration
.
class
,
MybatisPlusAutoConfiguration
.
class
})
@AutoConfigureAfter
(
ApolloAutoConfiguration
.
class
)
@Slf4j
public
class
MatrixMybatisAutoConfiguration
{
@Setter
private
MatrixDataSourceBootProperties
matrixDataSourceBootProperties
;
@
Autowired
@
Resource
private
MatrixMybatisBootProperties
properties
;
public
MatrixMybatisAutoConfiguration
()
{
log
.
info
(
"Init MatrixDataSouceAutoConfiguration"
);
}
/**
* 如果没有声明,则使用默认的
*
* @return
*/
@Bean
@ConditionalOnMissingBean
(
DataSource
.
class
)
public
DataSource
dataSource
()
{
return
new
MatrixDataSource
(
"default"
);
log
.
info
(
"Init MatrixMybatisAutoConfiguration"
);
}
@Bean
@ConditionalOnMissingBean
(
SqlSessionFactory
.
class
)
public
SqlSessionFactory
sqlSessionFactory
(
DataSource
dataSource
)
throws
Exception
{
MybatisConfiguration
mybatisConfiguration
=
Optional
.
ofNullable
(
properties
.
getConfiguration
()).
orElse
(
matrixMybatisConfig
());
MatrixMybatisGlobalConfig
globalConfig
=
Optional
.
ofNullable
(
properties
.
getGlobalConfig
()).
orElse
(
matrixMybatisGlobalConfig
());
public
SqlSessionFactory
sqlSessionFactory
(
DataSource
dataSource
,
GlobalConfig
globalConfig
,
MybatisConfiguration
mybatisConfiguration
)
throws
Exception
{
MatrixMybatisSqlSessionFactoryBean
factory
=
new
MatrixMybatisSqlSessionFactoryBean
();
String
aliasesPackage
=
Optional
.
ofNullable
(
this
.
properties
.
getTypeAliasesPackage
()).
orElse
(
MatrixMybatisProperties
.
DEFAULT_ALIAS_PACKAGES
);
String
[]
mapperLocations
=
Optional
.
ofNullable
(
this
.
properties
.
getMapperLocations
()).
orElse
(
MatrixMybatisProperties
.
DEFAULT_MAPPER_LOCATIONS
);
this
.
properties
.
setTypeAliasesPackage
(
aliasesPackage
);
this
.
properties
.
setMapperLocations
(
mapperLocations
);
if
(
this
.
properties
.
getConfigurationProperties
()
!=
null
)
{
factory
.
setConfigurationProperties
(
this
.
properties
.
getConfigurationProperties
());
}
if
(
this
.
properties
.
getConfigurationProperties
()
!=
null
)
{
factory
.
setConfigurationProperties
(
this
.
properties
.
getConfigurationProperties
());
...
...
@@ -102,13 +79,16 @@ public class MatrixMybatisAutoConfiguration {
return
factory
.
getObject
();
}
public
MatrixMybatisGlobalConfig
matrixMybatisGlobalConfig
()
{
@Bean
@ConditionalOnMissingBean
(
GlobalConfig
.
class
)
public
MatrixMybatisGlobalConfig
globalConfig
()
{
MatrixMybatisGlobalConfig
globalConfig
=
new
MatrixMybatisGlobalConfig
();
return
globalConfig
;
}
public
MatrixMybatisConfiguration
matrixMybatisConfig
()
{
@Bean
@ConditionalOnMissingBean
(
MybatisConfiguration
.
class
)
public
MatrixMybatisConfiguration
mybatisConfiguration
()
{
MatrixMybatisConfiguration
config
=
new
MatrixMybatisConfiguration
();
return
config
;
}
...
...
matrix-mybatis/matrix-mybatis-starter/src/main/java/com/secoo/mall/mybatis/spring/boot/initializer/MybatisApplicationContextInitializer.java
deleted
100644 → 0
View file @
d259d2b2
package
com
.
secoo
.
mall
.
mybatis
.
spring
.
boot
.
initializer
;
import
com.ctrip.framework.apollo.spring.boot.ApolloApplicationContextInitializer
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.core.env.ConfigurableEnvironment
;
public
class
MybatisApplicationContextInitializer
extends
ApolloApplicationContextInitializer
{
private
static
Logger
log
=
LoggerFactory
.
getLogger
(
MybatisApplicationContextInitializer
.
class
);
public
static
String
MYBATIS_ENCRYPT_PWD
=
"mybatis.encryptor.pwd"
;
public
static
String
MYBATIS_ENCRYPT_SALT
=
"mybatis.encryptor.salt"
;
public
static
String
ENCRYPT_FILE_NAME
=
"encryptor.properties"
;
@Override
protected
void
initialize
(
ConfigurableEnvironment
environment
)
{
super
.
initialize
(
environment
);
}
// public static Integer ORDER = ApolloApplicationContextInitializer.DEFAULT_ORDER + 100;
/* @Override
public void initialize(ConfigurableApplicationContext context) {
//log.info("initialize.....................");
ConfigurableEnvironment environment = context.getEnvironment();
if (!environment.containsProperty(MYBATIS_ENCRYPT_PWD)) {
Properties properties = new Properties();
//从-D读取
initDConfig(properties);
//从文件加载
initFileConfig(properties);
//解密配置
initApolloConfig(properties);
environment.getPropertySources();
environment.getPropertySources().addFirst((new PropertiesPropertySource("matrixProperties", properties)));
}
}
@Override
public int getOrder() {
return ORDER;
}
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
// log.info("postProcessEnvironment.......");
}
private void initDConfig(Properties properties) {
if (System.getProperty(MYBATIS_ENCRYPT_PWD) != null) {
properties.setProperty(MYBATIS_ENCRYPT_PWD, System.getProperty(MYBATIS_ENCRYPT_PWD));
properties.setProperty(MYBATIS_ENCRYPT_SALT, System.getProperty(MYBATIS_ENCRYPT_SALT));
}
}
private void initFileConfig(Properties properties) {
if(!properties.containsKey(MYBATIS_ENCRYPT_PWD)) {
try {
File file = ResourceUtils.getFile(SystemUtils.USER_HOME + File.separator + ENCRYPT_FILE_NAME);
if (!file.exists()) {
// log.warn(ENCRYPT_FILE_NAME + " not exist");
return;
}
properties.load(new FileInputStream(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
*//**
* 解密相关的配置
*//*
private void initApolloConfig(Properties properties){
Config appConfig = ConfigService.getConfig("db.config");
Set<String> propertyNames = appConfig.getPropertyNames();
// log.info(propertyNames.toString());
}*/
}
matrix-mybatis/matrix-mybatis-starter/src/main/java/com/secoo/mall/mybatis/spring/boot/listener/MybatisApplicationRunListener.java
deleted
100644 → 0
View file @
d259d2b2
package
com
.
secoo
.
mall
.
mybatis
.
spring
.
boot
.
listener
;
import
com.ctrip.framework.apollo.Config
;
import
com.ctrip.framework.apollo.ConfigService
;
import
com.ctrip.framework.apollo.spring.boot.ApolloApplicationContextInitializer
;
import
lombok.NoArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.SystemUtils
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplicationRunListener
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.env.ConfigurableEnvironment
;
import
org.springframework.core.env.PropertiesPropertySource
;
import
org.springframework.util.ResourceUtils
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.util.Properties
;
import
java.util.Set
;
@Slf4j
@NoArgsConstructor
public
class
MybatisApplicationRunListener
implements
SpringApplicationRunListener
,
Ordered
{
public
static
String
MYBATIS_ENCRYPT_PWD
=
"mybats.encryptor.pwd"
;
public
static
String
MYBATIS_ENCRYPT_SALT
=
"mybats.encryptor.salt"
;
public
static
String
ENCRYPT_FILE_NAME
=
"encryptor.properties"
;
public
static
Integer
ORDER
=
ApolloApplicationContextInitializer
.
DEFAULT_ORDER
+
1
;
public
MybatisApplicationRunListener
(
SpringApplication
application
,
String
[]
args
)
{
}
@Override
public
void
starting
()
{
log
.
info
(
"Appication Starting....."
);
}
/**
* 配置加载的依次顺序:
* 1.-spring.config方式加载外部配置
* 2.-D获取
* 3.本地
*
* @param environment
*/
@Override
public
void
environmentPrepared
(
ConfigurableEnvironment
environment
)
{
if
(!
environment
.
containsProperty
(
MYBATIS_ENCRYPT_PWD
))
{
Properties
properties
=
new
Properties
();
//从-D读取
initDConfig
(
properties
);
//从文件加载
initFileConfig
(
properties
);
//解密配置
// initApolloConfig(properties);
environment
.
getPropertySources
();
environment
.
getPropertySources
().
addFirst
((
new
PropertiesPropertySource
(
"matrixProperties"
,
properties
)));
}
}
@Override
public
void
contextPrepared
(
ConfigurableApplicationContext
context
)
{
ConfigurableEnvironment
environment
=
context
.
getEnvironment
();
log
.
info
(
"contextPrepared......"
);
}
@Override
public
void
contextLoaded
(
ConfigurableApplicationContext
context
)
{
}
@Override
public
void
started
(
ConfigurableApplicationContext
context
)
{
}
@Override
public
void
running
(
ConfigurableApplicationContext
context
)
{
}
@Override
public
void
failed
(
ConfigurableApplicationContext
context
,
Throwable
exception
)
{
}
@Override
public
int
getOrder
()
{
return
ORDER
;
}
private
void
initDConfig
(
Properties
properties
)
{
if
(
System
.
getProperty
(
MYBATIS_ENCRYPT_PWD
)
!=
null
)
{
properties
.
setProperty
(
MYBATIS_ENCRYPT_PWD
,
System
.
getProperty
(
MYBATIS_ENCRYPT_PWD
));
properties
.
setProperty
(
MYBATIS_ENCRYPT_SALT
,
System
.
getProperty
(
MYBATIS_ENCRYPT_SALT
));
}
}
private
void
initFileConfig
(
Properties
properties
)
{
if
(!
properties
.
containsKey
(
MYBATIS_ENCRYPT_PWD
))
{
try
{
File
file
=
ResourceUtils
.
getFile
(
SystemUtils
.
USER_HOME
+
File
.
separator
+
ENCRYPT_FILE_NAME
);
if
(!
file
.
exists
())
{
log
.
warn
(
ENCRYPT_FILE_NAME
+
" not exist"
);
return
;
}
properties
.
load
(
new
FileInputStream
(
file
));
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
/**
* 解密相关的配置
*/
private
void
initApolloConfig
(
Properties
properties
)
{
Config
appConfig
=
ConfigService
.
getConfig
(
"db.config"
);
Set
<
String
>
propertyNames
=
appConfig
.
getPropertyNames
();
log
.
info
(
propertyNames
.
toString
());
}
}
pom.xml
View file @
b0484242
...
...
@@ -77,6 +77,11 @@
</dependency>
<dependency>
<groupId>
com.secoo.mall
</groupId>
<artifactId>
matrix-mybatis-core
</artifactId>
<version>
2.0.1.RELEASE
</version>
</dependency>
<dependency>
<groupId>
com.secoo.mall
</groupId>
<artifactId>
matrix-mybatis-starter
</artifactId>
<version>
2.0.1.RELEASE
</version>
</dependency>
...
...
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