Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄营
datax-cloud
Commits
8ba17fc7
Commit
8ba17fc7
authored
Apr 27, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.0.0项目初始化
parent
621f197b
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
60 additions
and
121 deletions
+60
-121
MD5Util.java
...mon-core/src/main/java/cn/datax/common/utils/MD5Util.java
+3
-7
EnableDataLog.java
...in/java/cn/datax/common/log/annotation/EnableDataLog.java
+0
-14
LogAspect.java
.../src/main/java/cn/datax/common/log/aspectj/LogAspect.java
+4
-4
AutoConfiguration.java
...in/java/cn/datax/common/log/config/AutoConfiguration.java
+0
-16
spring.factories
...x-common-log/src/main/resources/META-INF/spring.factories
+2
-0
RedisConfig.java
...c/main/java/cn/datax/common/redis/config/RedisConfig.java
+24
-31
DataxSqlConsoleApplication.java
.../data/factory/sql/console/DataxSqlConsoleApplication.java
+2
-4
DataxFactoryApplication.java
...n/datax/service/data/factory/DataxFactoryApplication.java
+2
-4
DataxApiCallApplication.java
...service/data/market/api/call/DataxApiCallApplication.java
+2
-4
DataxMarketApplication.java
.../cn/datax/service/data/market/DataxMarketApplication.java
+2
-4
DataxMailApplication.java
...ain/java/cn/datax/service/email/DataxMailApplication.java
+0
-2
DataxFileApplication.java
...main/java/cn/datax/service/file/DataxFileApplication.java
+0
-2
DataxSystemApplication.java
.../java/cn/datax/service/system/DataxSystemApplication.java
+0
-2
AsyncTask.java
...rc/main/java/cn/datax/service/system/async/AsyncTask.java
+6
-9
LogAsyncConfig.java
...n/java/cn/datax/service/system/config/LogAsyncConfig.java
+10
-15
InnerController.java
...a/cn/datax/service/system/controller/InnerController.java
+3
-3
No files found.
datax-common/datax-common-core/src/main/java/cn/datax/common/utils/MD5Util.java
View file @
8ba17fc7
package
cn
.
datax
.
common
.
utils
;
package
cn
.
datax
.
common
.
utils
;
import
sun.misc.BASE64Decoder
;
import
sun.misc.BASE64Encoder
;
import
javax.crypto.Cipher
;
import
javax.crypto.Cipher
;
import
javax.crypto.SecretKeyFactory
;
import
javax.crypto.SecretKeyFactory
;
import
javax.crypto.spec.DESKeySpec
;
import
javax.crypto.spec.DESKeySpec
;
...
@@ -11,6 +8,7 @@ import java.security.Key;
...
@@ -11,6 +8,7 @@ import java.security.Key;
import
java.security.MessageDigest
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.AlgorithmParameterSpec
;
import
java.security.spec.AlgorithmParameterSpec
;
import
java.util.Base64
;
public
class
MD5Util
{
public
class
MD5Util
{
...
@@ -68,8 +66,7 @@ public class MD5Util {
...
@@ -68,8 +66,7 @@ public class MD5Util {
Cipher
enCipher
=
Cipher
.
getInstance
(
"DES/CBC/PKCS5Padding"
);
// 得到加密对象Cipher
Cipher
enCipher
=
Cipher
.
getInstance
(
"DES/CBC/PKCS5Padding"
);
// 得到加密对象Cipher
enCipher
.
init
(
Cipher
.
ENCRYPT_MODE
,
key
,
iv
);
// 设置工作模式为加密模式,给出密钥和向量
enCipher
.
init
(
Cipher
.
ENCRYPT_MODE
,
key
,
iv
);
// 设置工作模式为加密模式,给出密钥和向量
byte
[]
pasByte
=
enCipher
.
doFinal
(
data
.
getBytes
(
this
.
charset
));
byte
[]
pasByte
=
enCipher
.
doFinal
(
data
.
getBytes
(
this
.
charset
));
BASE64Encoder
base64Encoder
=
new
BASE64Encoder
();
return
Base64
.
getEncoder
().
encodeToString
(
pasByte
);
return
base64Encoder
.
encode
(
pasByte
);
}
}
/**
/**
...
@@ -81,10 +78,9 @@ public class MD5Util {
...
@@ -81,10 +78,9 @@ public class MD5Util {
public
String
decode
(
String
data
)
throws
Exception
{
public
String
decode
(
String
data
)
throws
Exception
{
Cipher
deCipher
=
Cipher
.
getInstance
(
"DES/CBC/PKCS5Padding"
);
Cipher
deCipher
=
Cipher
.
getInstance
(
"DES/CBC/PKCS5Padding"
);
deCipher
.
init
(
Cipher
.
DECRYPT_MODE
,
key
,
iv
);
deCipher
.
init
(
Cipher
.
DECRYPT_MODE
,
key
,
iv
);
BASE64Decoder
base64Decoder
=
new
BASE64Decoder
();
//此处注意doFinal()的参数的位数必须是8的倍数,否则会报错(通过encode加密的字符串读出来都是8的倍数位,但写入文件再读出来,就可能因为读取的方式的问题,导致最后此处的doFinal()的参数的位数不是8的倍数)
//此处注意doFinal()的参数的位数必须是8的倍数,否则会报错(通过encode加密的字符串读出来都是8的倍数位,但写入文件再读出来,就可能因为读取的方式的问题,导致最后此处的doFinal()的参数的位数不是8的倍数)
//此处必须用base64Decoder,若用data。getBytes()则获取的字符串的byte数组的个数极可能不是8的倍数,而且不与上面的BASE64Encoder对应(即使解密不报错也不会得到正确结果)
//此处必须用base64Decoder,若用data。getBytes()则获取的字符串的byte数组的个数极可能不是8的倍数,而且不与上面的BASE64Encoder对应(即使解密不报错也不会得到正确结果)
byte
[]
pasByte
=
deCipher
.
doFinal
(
base64Decoder
.
decodeBuffer
(
data
));
byte
[]
pasByte
=
deCipher
.
doFinal
(
Base64
.
getDecoder
().
decode
(
data
));
return
new
String
(
pasByte
,
this
.
charset
);
return
new
String
(
pasByte
,
this
.
charset
);
}
}
...
...
datax-common/datax-common-log/src/main/java/cn/datax/common/log/annotation/EnableDataLog.java
deleted
100644 → 0
View file @
621f197b
package
cn
.
datax
.
common
.
log
.
annotation
;
import
cn.datax.common.log.config.AutoConfiguration
;
import
org.springframework.context.annotation.Import
;
import
java.lang.annotation.*
;
@Target
({
ElementType
.
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Documented
@Inherited
@Import
({
AutoConfiguration
.
class
})
public
@interface
EnableDataLog
{
}
datax-common/datax-common-log/src/main/java/cn/datax/common/log/aspectj/LogAspect.java
View file @
8ba17fc7
...
@@ -3,10 +3,10 @@ package cn.datax.common.log.aspectj;
...
@@ -3,10 +3,10 @@ package cn.datax.common.log.aspectj;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
import
cn.datax.common.log.annotation.LogAop
;
import
cn.datax.common.log.annotation.LogAop
;
import
cn.datax.common.log.async.AsyncTask
;
import
cn.datax.common.utils.RequestHolder
;
import
cn.datax.common.utils.RequestHolder
;
import
cn.datax.common.utils.SecurityUtil
;
import
cn.datax.common.utils.SecurityUtil
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.feign.LogServiceFeign
;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.extra.servlet.ServletUtil
;
import
cn.hutool.extra.servlet.ServletUtil
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.http.HttpUtil
;
...
@@ -28,7 +28,7 @@ import javax.servlet.http.HttpServletRequest;
...
@@ -28,7 +28,7 @@ import javax.servlet.http.HttpServletRequest;
public
class
LogAspect
{
public
class
LogAspect
{
@Autowired
@Autowired
private
AsyncTask
asyncTask
;
private
LogServiceFeign
logServiceFeign
;
// 配置织入点
// 配置织入点
@Pointcut
(
"@annotation(cn.datax.common.log.annotation.LogAop)"
)
@Pointcut
(
"@annotation(cn.datax.common.log.annotation.LogAop)"
)
...
@@ -89,8 +89,8 @@ public class LogAspect {
...
@@ -89,8 +89,8 @@ public class LogAspect {
logDto
.
setModule
(
logAop
.
module
()).
setTitle
(
logAop
.
value
())
logDto
.
setModule
(
logAop
.
module
()).
setTitle
(
logAop
.
value
())
.
setClassName
(
className
).
setMethodName
(
methodName
);
.
setClassName
(
className
).
setMethodName
(
methodName
);
//
异步
保存数据库
// 保存数据库
asyncTask
.
doTask
(
logDto
);
logServiceFeign
.
saveLog
(
logDto
);
}
}
/**
/**
...
...
datax-common/datax-common-log/src/main/java/cn/datax/common/log/config/AutoConfiguration.java
deleted
100644 → 0
View file @
621f197b
package
cn
.
datax
.
common
.
log
.
config
;
import
cn.datax.common.log.aspectj.LogAspect
;
import
cn.datax.common.log.async.AsyncTask
;
import
org.springframework.context.annotation.Import
;
/**
* 扫描注入bean
*
* @author yuwei
* @since 2019/10/30
*/
@Import
({
LogAspect
.
class
,
AsyncTask
.
class
,
LogAsyncConfig
.
class
})
public
class
AutoConfiguration
{
}
datax-common/datax-common-log/src/main/resources/META-INF/spring.factories
0 → 100644
View file @
8ba17fc7
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.datax.common.log.aspectj.LogAspect
datax-common/datax-common-redis/src/main/java/cn/datax/common/redis/config/RedisConfig.java
View file @
8ba17fc7
...
@@ -2,53 +2,34 @@ package cn.datax.common.redis.config;
...
@@ -2,53 +2,34 @@ package cn.datax.common.redis.config;
import
cn.datax.common.redis.service.RedisService
;
import
cn.datax.common.redis.service.RedisService
;
import
com.fasterxml.jackson.annotation.JsonAutoDetect
;
import
com.fasterxml.jackson.annotation.JsonAutoDetect
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.fasterxml.jackson.annotation.PropertyAccessor
;
import
com.fasterxml.jackson.annotation.PropertyAccessor
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.SerializationFeature
;
import
com.fasterxml.jackson.databind.SerializationFeature
;
import
com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator
;
import
com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator
;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.core.*
;
import
org.springframework.data.redis.core.*
;
import
org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer
;
import
org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer
;
import
org.springframework.data.redis.serializer.RedisSerializer
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.format.DateTimeFormatter
;
@ConditionalOnClass
(
RedisOperations
.
class
)
@ConditionalOnClass
(
RedisOperations
.
class
)
public
class
RedisConfig
{
public
class
RedisConfig
{
/**
/**
*
实例化 RedisTemplate 对象
*
自定义redis序列化的机制,重新定义一个ObjectMapper.防止和MVC的冲突
*
*
* @return
* @return
*/
*/
@Bean
(
name
=
"redisTemplate"
)
@Bean
public
Redis
Template
<
String
,
Object
>
redisTemplate
(
RedisConnectionFactory
redisConnectionFactory
)
{
public
Redis
Serializer
<
Object
>
redisSerializer
(
)
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
setVisibility
(
PropertyAccessor
.
ALL
,
JsonAutoDetect
.
Visibility
.
ANY
);
objectMapper
.
setVisibility
(
PropertyAccessor
.
ALL
,
JsonAutoDetect
.
Visibility
.
ANY
);
//使用JSR310提供的序列化类,里面包含了大量的JDK8时间序列化类
objectMapper
.
disable
(
SerializationFeature
.
WRITE_DATES_AS_TIMESTAMPS
);
JavaTimeModule
javaTimeModule
=
new
JavaTimeModule
();
javaTimeModule
.
addSerializer
(
LocalDateTime
.
class
,
new
LocalDateTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
javaTimeModule
.
addSerializer
(
LocalDate
.
class
,
new
LocalDateSerializer
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
)));
javaTimeModule
.
addSerializer
(
LocalTime
.
class
,
new
LocalTimeSerializer
(
DateTimeFormatter
.
ofPattern
(
"HH:mm:ss"
)));
javaTimeModule
.
addDeserializer
(
LocalDateTime
.
class
,
new
LocalDateTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
)));
javaTimeModule
.
addDeserializer
(
LocalDate
.
class
,
new
LocalDateDeserializer
(
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
)));
javaTimeModule
.
addDeserializer
(
LocalTime
.
class
,
new
LocalTimeDeserializer
(
DateTimeFormatter
.
ofPattern
(
"HH:mm:ss"
)));
objectMapper
.
registerModule
(
javaTimeModule
);
//反序列化时候遇到不匹配的属性并不抛出异常
//反序列化时候遇到不匹配的属性并不抛出异常
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
//序列化时候遇到空对象不抛出异常
//序列化时候遇到空对象不抛出异常
...
@@ -57,15 +38,27 @@ public class RedisConfig {
...
@@ -57,15 +38,27 @@ public class RedisConfig {
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_INVALID_SUBTYPE
,
false
);
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_INVALID_SUBTYPE
,
false
);
//不使用默认的dateTime进行序列化,
//不使用默认的dateTime进行序列化,
objectMapper
.
configure
(
SerializationFeature
.
WRITE_DATE_KEYS_AS_TIMESTAMPS
,
false
);
objectMapper
.
configure
(
SerializationFeature
.
WRITE_DATE_KEYS_AS_TIMESTAMPS
,
false
);
//使用JSR310提供的序列化类,里面包含了大量的JDK8时间序列化类
objectMapper
.
registerModule
(
new
JavaTimeModule
());
//启用反序列化所需的类型信息,在属性中添加@class
//启用反序列化所需的类型信息,在属性中添加@class
objectMapper
.
activateDefaultTyping
(
LaissezFaireSubTypeValidator
.
instance
,
ObjectMapper
.
DefaultTyping
.
NON_FINAL
);
objectMapper
.
activateDefaultTyping
(
LaissezFaireSubTypeValidator
.
instance
,
ObjectMapper
.
DefaultTyping
.
NON_FINAL
,
JsonTypeInfo
.
As
.
PROPERTY
);
Jackson2JsonRedisSerializer
<
Object
>
serializer
=
new
Jackson2JsonRedisSerializer
<
Object
>(
Object
.
class
);
//配置null值的序列化器
serializer
.
setObjectMapper
(
objectMapper
);
GenericJackson2JsonRedisSerializer
.
registerNullValueSerializer
(
objectMapper
,
null
);
return
new
GenericJackson2JsonRedisSerializer
(
objectMapper
);
}
/**
* 实例化 RedisTemplate 对象
*
* @return
*/
@Bean
(
name
=
"redisTemplate"
)
public
RedisTemplate
<
String
,
Object
>
redisTemplate
(
RedisConnectionFactory
redisConnectionFactory
,
RedisSerializer
<
Object
>
redisSerializer
)
{
RedisTemplate
<
String
,
Object
>
redisTemplate
=
new
RedisTemplate
<>();
RedisTemplate
<
String
,
Object
>
redisTemplate
=
new
RedisTemplate
<>();
redisTemplate
.
setConnectionFactory
(
redisConnectionFactory
);
redisTemplate
.
setConnectionFactory
(
redisConnectionFactory
);
redisTemplate
.
setDefaultSerializer
(
s
erializer
);
redisTemplate
.
setDefaultSerializer
(
redisS
erializer
);
redisTemplate
.
setValueSerializer
(
s
erializer
);
redisTemplate
.
setValueSerializer
(
redisS
erializer
);
redisTemplate
.
setHashValueSerializer
(
s
erializer
);
redisTemplate
.
setHashValueSerializer
(
redisS
erializer
);
redisTemplate
.
setKeySerializer
(
StringRedisSerializer
.
UTF_8
);
redisTemplate
.
setKeySerializer
(
StringRedisSerializer
.
UTF_8
);
redisTemplate
.
setHashKeySerializer
(
StringRedisSerializer
.
UTF_8
);
redisTemplate
.
setHashKeySerializer
(
StringRedisSerializer
.
UTF_8
);
redisTemplate
.
afterPropertiesSet
();
redisTemplate
.
afterPropertiesSet
();
...
...
datax-modules/data-factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql/console/DataSqlConsoleApplication.java
→
datax-modules/data-factory-service-parent/data-factory-service-sql-console/src/main/java/cn/datax/service/data/factory/sql/console/Data
x
SqlConsoleApplication.java
View file @
8ba17fc7
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
;
package
cn
.
datax
.
service
.
data
.
factory
.
sql
.
console
;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@EnableDataLog
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
,
"cn.datax.service.data.factory.api.feign"
})
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
,
"cn.datax.service.data.factory.api.feign"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
DataSqlConsoleApplication
{
public
class
Data
x
SqlConsoleApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
DataSqlConsoleApplication
.
class
);
SpringApplication
.
run
(
Data
x
SqlConsoleApplication
.
class
);
}
}
}
}
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/DataFactoryApplication.java
→
datax-modules/data-factory-service-parent/data-factory-service/src/main/java/cn/datax/service/data/factory/Data
x
FactoryApplication.java
View file @
8ba17fc7
package
cn
.
datax
.
service
.
data
.
factory
;
package
cn
.
datax
.
service
.
data
.
factory
;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@EnableDataLog
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
,
"cn.datax.service.data.factory.api.feign"
})
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
,
"cn.datax.service.data.factory.api.feign"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
DataFactoryApplication
{
public
class
Data
x
FactoryApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
DataFactoryApplication
.
class
);
SpringApplication
.
run
(
Data
x
FactoryApplication
.
class
);
}
}
}
}
datax-modules/data-market-service-parent/data-market-service-api-call/src/main/java/cn/datax/service/data/market/api/call/DataApiCallApplication.java
→
datax-modules/data-market-service-parent/data-market-service-api-call/src/main/java/cn/datax/service/data/market/api/call/Data
x
ApiCallApplication.java
View file @
8ba17fc7
package
cn
.
datax
.
service
.
data
.
market
.
api
.
call
;
package
cn
.
datax
.
service
.
data
.
market
.
api
.
call
;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@EnableDataLog
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
,
"cn.datax.service.data.factory.api.feign"
,
"cn.datax.service.data.market.api.feign"
})
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
,
"cn.datax.service.data.factory.api.feign"
,
"cn.datax.service.data.market.api.feign"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
DataApiCallApplication
{
public
class
Data
x
ApiCallApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
DataApiCallApplication
.
class
);
SpringApplication
.
run
(
Data
x
ApiCallApplication
.
class
);
}
}
}
}
datax-modules/data-market-service-parent/data-market-service/src/main/java/cn/datax/service/data/market/DataMarketApplication.java
→
datax-modules/data-market-service-parent/data-market-service/src/main/java/cn/datax/service/data/market/Data
x
MarketApplication.java
View file @
8ba17fc7
package
cn
.
datax
.
service
.
data
.
market
;
package
cn
.
datax
.
service
.
data
.
market
;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@EnableDataLog
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
})
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
DataMarketApplication
{
public
class
Data
x
MarketApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
DataMarketApplication
.
class
);
SpringApplication
.
run
(
Data
x
MarketApplication
.
class
);
}
}
}
}
datax-modules/email-service-parent/email-service/src/main/java/cn/datax/service/email/DataxMailApplication.java
View file @
8ba17fc7
package
cn
.
datax
.
service
.
email
;
package
cn
.
datax
.
service
.
email
;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@EnableDataLog
@SpringBootApplication
@SpringBootApplication
public
class
DataxMailApplication
{
public
class
DataxMailApplication
{
...
...
datax-modules/file-service-parent/file-service/src/main/java/cn/datax/service/file/DataxFileApplication.java
View file @
8ba17fc7
package
cn
.
datax
.
service
.
file
;
package
cn
.
datax
.
service
.
file
;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@EnableDataLog
@SpringBootApplication
@SpringBootApplication
public
class
DataxFileApplication
{
public
class
DataxFileApplication
{
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/DataxSystemApplication.java
View file @
8ba17fc7
package
cn
.
datax
.
service
.
system
;
package
cn
.
datax
.
service
.
system
;
import
cn.datax.common.log.annotation.EnableDataLog
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.client.SpringCloudApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@EnableDataLog
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
})
@EnableFeignClients
(
basePackages
=
{
"cn.datax.service.system.api.feign"
})
@SpringCloudApplication
@SpringCloudApplication
public
class
DataxSystemApplication
{
public
class
DataxSystemApplication
{
...
...
datax-
common/datax-common-log/src/main/java/cn/datax/common/log
/async/AsyncTask.java
→
datax-
modules/system-service-parent/system-service/src/main/java/cn/datax/service/system
/async/AsyncTask.java
View file @
8ba17fc7
package
cn
.
datax
.
common
.
log
.
async
;
package
cn
.
datax
.
service
.
system
.
async
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.feign.LogServiceFeign
;
import
cn.datax.service.system.service.LogService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
lombok.extern.slf4j.Slf4j
;
/**
/**
* 异步处理 分布式获取请求头有问题
* 异步处理 分布式获取请求头有问题
*/
*/
...
@@ -16,11 +15,10 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -16,11 +15,10 @@ import lombok.extern.slf4j.Slf4j;
public
class
AsyncTask
{
public
class
AsyncTask
{
@Autowired
@Autowired
private
LogService
Feign
logServiceFeign
;
private
LogService
logService
;
@Async
(
"data
LogExecutor
"
)
@Async
(
"data
xAsyncThreadPool
"
)
public
void
doTask
(
LogDto
logDto
)
{
public
void
doTask
(
LogDto
logDto
)
{
logService
Feign
.
saveLog
(
logDto
);
logService
.
saveLog
(
logDto
);
}
}
}
}
\ No newline at end of file
datax-
common/datax-common-log/src/main/java/cn/datax/common/log
/config/LogAsyncConfig.java
→
datax-
modules/system-service-parent/system-service/src/main/java/cn/datax/service/system
/config/LogAsyncConfig.java
View file @
8ba17fc7
package
cn
.
datax
.
common
.
log
.
config
;
package
cn
.
datax
.
service
.
system
.
config
;
import
java.util.concurrent.Executor
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
java.util.concurrent.ThreadPoolExecutor
;
@EnableAsync
@EnableAsync
public
class
LogAsyncConfig
{
public
class
LogAsyncConfig
{
private
static
int
corePoolSize
=
5
;
@Bean
(
"dataxAsyncThreadPool"
)
private
static
int
maxPoolSize
=
10
;
public
ThreadPoolTaskExecutor
asyncThreadPoolTaskExecutor
()
{
private
static
int
queueCapacity
=
20
;
@Bean
(
"dataLogExecutor"
)
public
Executor
dataLogExecutor
()
{
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
executor
.
setCorePoolSize
(
corePoolSize
);
executor
.
setCorePoolSize
(
5
);
executor
.
setMaxPoolSize
(
maxPoolSize
);
executor
.
setMaxPoolSize
(
20
);
executor
.
setQueueCapacity
(
queueCapacity
);
executor
.
setQueueCapacity
(
100
);
executor
.
setKeepAliveSeconds
(
6
0
);
executor
.
setKeepAliveSeconds
(
3
0
);
executor
.
setThreadNamePrefix
(
"
dataLogExecutor-
"
);
executor
.
setThreadNamePrefix
(
"
Datax-Async-Thread
"
);
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
executor
.
setWaitForTasksToCompleteOnShutdown
(
true
);
executor
.
setAwaitTerminationSeconds
(
60
);
executor
.
setAwaitTerminationSeconds
(
60
);
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
...
...
datax-modules/system-service-parent/system-service/src/main/java/cn/datax/service/system/controller/InnerController.java
View file @
8ba17fc7
...
@@ -4,7 +4,7 @@ import cn.datax.common.base.BaseController;
...
@@ -4,7 +4,7 @@ import cn.datax.common.base.BaseController;
import
cn.datax.common.core.R
;
import
cn.datax.common.core.R
;
import
cn.datax.common.security.annotation.DataInner
;
import
cn.datax.common.security.annotation.DataInner
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.api.dto.LogDto
;
import
cn.datax.service.system.
service.LogService
;
import
cn.datax.service.system.
async.AsyncTask
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
@@ -16,12 +16,12 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -16,12 +16,12 @@ import org.springframework.web.bind.annotation.RestController;
public
class
InnerController
extends
BaseController
{
public
class
InnerController
extends
BaseController
{
@Autowired
@Autowired
private
LogService
logService
;
private
AsyncTask
asyncTask
;
@DataInner
@DataInner
@PostMapping
(
"/logs"
)
@PostMapping
(
"/logs"
)
public
R
saveLog
(
@RequestBody
LogDto
log
)
{
public
R
saveLog
(
@RequestBody
LogDto
log
)
{
logService
.
saveLog
(
log
);
asyncTask
.
doTask
(
log
);
return
R
.
ok
();
return
R
.
ok
();
}
}
}
}
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