因为项目中 @PostConstruct 初始化方法中的逻辑比较久, 阻塞了主线程, 耽误启动时间,就想者优化一下, 周末查了一下解决了。
上代码:
禁止在项目中 new Thread();
1: 配置项目线程池:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
/**
* 线程池配置
*/
@Configuration
public class ThreadExecutorConfig {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
/** 核心线程数 */
private int corePoolSize = 10;
/** 最大线程数 */
private int maxPoolSize = 200;
/** 队列数 */
private int queueCapacity = 10;
@Bean("testAsync")
public ExecutorService testFxbDrawExecutor(){
ThreadPoolT

该博客介绍了如何通过配置线程池和使用Spring的@Async注解,优化@PostConstruct初始化方法中的长耗时逻辑,以避免阻塞主线程并提高应用启动效率。博主展示了线程池配置、异步服务接口实现、启动类的异步启用以及测试用例。
最低0.47元/天 解锁文章
155

被折叠的 条评论
为什么被折叠?



