java常用配置类

    技术2022-07-13  73

    线程池配置

    @Configuration public class ExecutorConfig { /** * 默认线程池线程池 * * @return Executor */ @Bean public ThreadPoolTaskExecutor defaultThreadPool() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //核心线程数目 executor.setCorePoolSize(1); //指定最大线程数 executor.setMaxPoolSize(10); //队列中最大的数目 executor.setQueueCapacity(3); //线程名称前缀 executor.setThreadNamePrefix("jie-"); //rejection-policy:当pool已经达到max size的时候,如何处理新任务 //CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行 //对拒绝task的处理策略 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); /** * 全局异常捕捉处理 * * @param e * @return */ @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"); } }
    Processed: 0.031, SQL: 9