Я тестирую @Async
в весенней загрузке 2 и следовал некоторому онлайн-уроку
Мой класс конфигурации:
@Configuration
@EnableAsync
public class AsyncConfig {
@Bean
public Executor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(5);
executor.setQueueCapacity(500);
executor.setThreadNamePrefix("Async Process-");
executor.initialize();
return executor;
}
}
Фрагмент моего контроллера:
@GetMapping("/test/async")
public void testAsync() {
System.err.println("Thread in controller: " + Thread.currentThread().getName());
TestAsyncClazz clazz = new TestAsyncClazz();
clazz.testAsyncMethod();
}
My TestAsyncClass
:
public class TestAsyncClazz {
@Async
public void testAsyncMethod(){
System.err.println("Running async: "+ Thread.currentThread().getName());
}
}
Когда я проверяю строку печати, это показывает, что оба моих метода работают в одном потоке, и он не использовал threadNamePrefix Async Process-
:
Thread in controller: http-nio-8080-exec-2
Running async: http-nio-8080-exec-2
Что я сделал не так?Я что-то не так понял?