网站建设越来越便宜,大连开发区,苏州做网站费用明细,学做网网站论坛自定义线程池
Configuration
public class MyThreadPool {//ThreadPoolTaskExecutor不会自动创建ThreadPoolExecutor#xff0c;需要手动调initialize才会创建。如果Bean就不需手动#xff0c;会自动InitializingBean的afterPropertiesSet来调initializeBean(myExecut…自定义线程池
Configuration
public class MyThreadPool {//ThreadPoolTaskExecutor不会自动创建ThreadPoolExecutor需要手动调initialize才会创建。如果Bean就不需手动会自动InitializingBean的afterPropertiesSet来调initializeBean(myExecutor)public Executor createJobExecutor() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor();// 线程池活跃的线程数executor.setCorePoolSize(20);// 设置线程队列最大线程数executor.setMaxPoolSize(40);// 设置等待队列大小executor.setQueueCapacity(200);// 线程池维护线程所允许的空闲时间executor.setKeepAliveSeconds(60);// 线程前缀名称executor.setThreadNamePrefix(myExecutor---: );executor.initialize();return executor;}
}实体类
public class StudentEvent extends ApplicationEvent{private String id;private String name;public StudentEvent(Object source, String id,String name) {super(source);this.id id;this.name name;}
}事件发布
sevice层 public interface StudentService {void sendStudentEvent(String id, String name);
}serviceImpl层
Service
public class StudentServiceImpl implements StudentService {AutowiredApplicationEventPublisher eventPublisher;OverrideAsync(myExecutor)public void sendStudentEvent(String id, String name){StudentEvent studentEvent new StudentEvent(this,id,name);eventPublisher.publishEvent(studentEvent);}
}事件监听
Component
public class MyStudentEventListener {EventListenerAsync(myExecutor)public void handleStudentEvent(StudentEvent studentEvent) {// 处理事件}
}监听器的执行顺序 如果应用程序中有多个事件监听器可以通过Order 注解指定它们的执行顺序。例如
Component
public class MyEventListener1 {EventListenerOrder(1)public void handleEvent(MyEvent event) {// 处理事件}
}Component
public class MyEventListener2 {EventListenerOrder(2)public void handleEvent(MyEvent event) {// 处理事件}
}监听器的条件 只想在特定条件下才执行事件监听器,可以使用 ConditionalOnProperty 注解
Component
ConditionalOnProperty(name myapp.event.listener.enabled, havingValue true)
public class MyEventListener {EventListenerpublic void handleEvent(MyEvent event) {// 处理事件}
}参考博客https://blog.csdn.net/albert_xjf/article/details/131326148