Java.Spring. BlockingQueue<>

138
05 марта 2021, 22:10

Я в спринге задаю бин

spring-app.xml

...
 <bean id="readControllerBlockingQueue"  class="java.util.concurrent.LinkedBlockingQueue" />
...

Потом, в нужном мне классе я беру на него ссылку:

class Example1 {
...
@Autowired
private BlockingQueue readControllerBlockingQueue;
...
}

Я не могу понять, как мне в спринге объявить бин с "типизацией" объектов, которые будут через него передаваться? Чтоб я мог привязать так:

class Example1 {
...
@Autowired
private BlockingQueue<myCustomClass> readControllerBlockingQueue;
...
}
Answer 1

К сожалению, с помощью XML это сделать невозможно, не делая при этом кастомные конфигурации, но ты можешь перенести конфигурацию из XML в JAVA примерно так:

@Configuration
public class MyConfig{
    @Bean
    public BlockingQueue<MyCustomClass1> readControllerBlockingQueue()
    {
    ....
    }
    @Bean
    public BlockingQueue<MyCustomClass2> anotherBlockingQueue()
    {
    ....
    } 
}

В этом случае spring (с версии 4.0) сможет распознать какой бин внедрять в такой объект:

class Example1 {
...
@Autowired
private BlockingQueue<MyCustomClass1> readControllerBlockingQueue;
...
}

P.S. учти, что если вместо BlockingQueue ты захочешь использовать List, Set или Map, то придётся дополнительно ещё что-то использовать, к примеру @Qualifier, т.к. такого рода внедрения он обрабатывает по-особому.

READ ALSO
Spring WebSocket и SockJS c использованием JWT

Spring WebSocket и SockJS c использованием JWT

Есть приложение на Spring boot 2, в котором пользователи авторизуюца и получают access keyКлиентская часть крутится на nodejs

111
Ad failed to load

Ad failed to load

Не запускается баннер рекламы

99
Node.js Eventloop неожиданное поведение

Node.js Eventloop неожиданное поведение

Если запустить код в консоли то вывод следующий

258
Как скрыть некоторые option у тега select на чистом JS

Как скрыть некоторые option у тега select на чистом JS

У меня есть тег select с тегами option

284