线程池配置
@Configuration
public class ExecutorConfig {
@Bean
public ThreadPoolTaskExecutor
defaultThreadPool() {
ThreadPoolTaskExecutor executor
= new ThreadPoolTaskExecutor();
executor
.setCorePoolSize(1);
executor
.setMaxPoolSize(10);
executor
.setQueueCapacity(3);
executor
.setThreadNamePrefix("jie-");
executor
.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor
.setKeepAliveSeconds(60);
executor
.initialize();
return executor
;
}
}
线程池使用
注入
@Autowired
private ThreadPoolTaskExecutor executorService
;
调用
executorService
.submit(() -> {
try {
log
.info("\r\n线程:" + Thread
.currentThread().getName());
} catch (Exception e
) {
e
.printStackTrace();
}
}
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
全局异常捕捉处理
@ControllerAdvice
public class CommonExceptionAdvice {
private Logger log
= LoggerFactory
.getLogger(CommonExceptionAdvice
.class);
@ResponseBody
@ExceptionHandler(value
= Exception
.class)
public ResponseMessage
errorHandler(HttpServletRequest request
, Exception e
) {
try {
e
.printStackTrace();
log
.error(request
.getRequestURI() + "::" + e
);
} catch (Exception ex
) {
ex
.printStackTrace();
}
return JsonResult
.jsonMsg(GLOBAL_EXCEPTION
);
}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
初始化操作
@Component
public class Start implements CommandLineRunner {
@Override
public void run(String
... args
) throws Exception
{
System
.out
.println("abc");
}
}