На мой взгляд, вам не хватает аннотации @Configuration
, и ваша асинхронная служба не сканируется компонентом.Вот пример фрагмента кода, который должен помочь:
@Configuration
@EnableAsync //should be placed together.
public class FacialRecognitionAsyncService {
@Async
public void populateDataInPushQueue(int mediaId, int studentId) {
//myCode
}
}
@Configuration
@EnableAsync
public class FacialServiceConfig {
// this will make your service to be scanned.
@Bean
public FacialRecognitionAsyncService createFacialRecognitionService() {
return new FacialRecognitionAsyncService();
}
}
Теперь служебный компонент, который вызывает асинхронный метод.Обратите внимание, что это было введено зависимость.Таким образом, пружинные прокси AOP будут вызываться при каждом вызове facialService
.Spring использует AOP в фоновом режиме для реализации @Async
.
@Service
public class MyBusinessService {
@Autowire
FacialRecognitionAsyncService facialService;
public myBusinessMethod() {
facialService.populateDataInPushQueue()
}
Обратите внимание, что FacialService
вводится в MyService
посредством внедрения зависимости.