Commit 242d5784 by yuwei

项目初始化

parent 9089acb9
......@@ -3,6 +3,7 @@ package cn.datax.common.log.aop;
import java.lang.reflect.Method;
import cn.datax.common.log.annotation.LogAop;
import cn.datax.common.log.async.AsyncTask;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.AfterReturning;
......@@ -12,11 +13,15 @@ import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@Slf4j
@Aspect
public class LogAspect {
@Autowired
private AsyncTask asyncTask;
// 配置织入点
@Pointcut("@annotation(cn.datax.common.log.annotation.LogAop)")
public void logPointCut() {}
......@@ -54,6 +59,9 @@ public class LogAspect {
String className = joinPoint.getTarget().getClass().getName();
String methodName = joinPoint.getSignature().getName();
log.info("[类名]:{},[方法]:{},[模块]:{},[描述]:{}", className, methodName, logAop.module(), logAop.value());
// 异步保存数据库
asyncTask.doTask();
} catch (Exception exp) {
log.error("前置通知异常信息:{}", exp.getMessage(), exp);
}
......
package cn.datax.common.log.async;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Component
public class AsyncTask {
@Async("dataLogExecutor")
public void doTask() {
log.info("开始做任务--模拟日志");
long start = System.currentTimeMillis();
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
log.info("完成任务,耗时:" + (end - start) + "毫秒");
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package cn.datax.common.log.config;
import cn.datax.common.log.aop.LogAspect;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
/**
* 扫描注入bean
......@@ -10,6 +11,7 @@ import org.springframework.context.annotation.ComponentScan;
* @since 2019/10/30
*/
@ComponentScan({"cn.datax.common.log"})
@Import({LogAsyncConfig.class})
public class AutoConfiguration {
@Bean
......
package cn.datax.common.log.config;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@EnableAsync
public class LogAsyncConfig {
private static int corePoolSize = 10;
private static int maxPoolSize = 50;
private static int queueCapacity = 100;
@Bean("dataLogExecutor")
public Executor dataLogExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("dataLogExecutor-");
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setAwaitTerminationSeconds(60);
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment