У меня ниже есть класс Listener. Моё приложение - приложение с весенней загрузкой. Я создаю его в своем классе конфигурации. Но я хочу, чтобы 100 экземпляров должны были быть созданы при запуске приложения и когда приложение останавливается, все объекты экземпляров должны быть закрыты. Это так же, как то, что мы сделали в пуле соединений. Кто-нибудь может предложить лучший способ достичь этого? Ниже приведены мой класс слушателя и фрагмент кода, используемый в моем классе конфигурации для создания экземпляра класса Listener.
@EnableRabbit
public class SubscriberGeneralQueue1 {
/*@Autowired
@Qualifier("asyncGeneralRabbitTemplate")
private AsyncRabbitTemplate asyncGeneralRabbitTemplate;*/
@Autowired
private ExecutorService executorService;
@Autowired
private GeneralProcess generalProcess;
List <RequestPojo> requestPojoGeneral = new ArrayList<RequestPojo>();
@RabbitHandler
@Async
@RabbitListener(containerFactory = "simpleMessageListenerContainerFactory", queues ="BulkSolve_GeneralrequestQueue")
public void subscribeToRequestQueue(@Payload RequestPojo sampleRequestMessage, Message message) throws InterruptedException {
long startTime=System.currentTimeMillis();
//requestPojoGeneral.add(sampleRequestMessage);
//System.out.println("List size issssss:" +requestPojoGeneral.size() );
//generalProcess.processRequestObjectslist(requestPojoGeneral);
generalProcess.processRequestObjects(sampleRequestMessage);
System.out.println("message in general listener is:" + sampleRequestMessage.getDistance());
System.out.println("Message payload is:" + sampleRequestMessage);
System.out.println("Message payload1111 is:" + message );
//return requestPojoGeneral;
}
}
Я создаю экземпляр вышеупомянутого класса в своем классе конфигурации
@Bean
@Scope("prototype")
public SubscriberGeneralQueue1 SubscriberGeneralQueue1(){
return new SubscriberGeneralQueue1();
}
Заранее спасибо.