2016-05-28 4 views
1

Есть ли способ, через который я могу найти все сконфигурированные аннотации MethodJmsListenerEndpoint?Получить конечные точки аннотированных методов для JMS

Я хочу зарегистрировать все эти конечные точки с помощью различных контейнеров-слушателей сообщений.

@JmsListener(destination = "TestQueue") 
public void process(String msg) { 
    System.out.println(msg); 
} 

//TODO for all connections 
foreach(connections){ 
//TODO get all annotated endpoints as prototype 
    foreach(endpoint){ 
     MethodJmsListenerEndpoint processEndpoint = endpoint; 
     registrar.registerEndpoint(processEndpoint,containerFactory(connection)); 
    } 
    } 
+0

Вы можете указать в '@ JmsListener', с которым должен связываться контейнер. Итак, зачем вам это нужно или хотите сделать это вручную? –

+0

У нас есть разные номера соединений, которые должны быть сделаны в каждой среде, и мы читаем детали соединения из БД. –

+0

Затем подключите свой материал db с помощью 'PropertySource', чтобы вы могли использовать стандартные механизмы конфигурации. Это сделает вашу конфигурацию намного проще. –

ответ

1

Зависит от поставщика, вы можете использовать конфигурацию настройщик боб, как HornetQConfigurationCustomizer манипулировать какие-либо параметры во время этой инициализации компоненты.

Если ваша конфигурация должна быть действительно приемной и управляемой во время выполнения, вы вообще не должны использовать аннотацию @JmsListener. Просто зарегистрируйте их все в своем коде, как Spring советует: JMS

+0

В настоящее время я следую тому же подходу, который просто хотел знать, что в случае наличия механизма для получения MethodJmsListenerEndpoint, которые настраиваются посредством аннотации. –

+0

Это возможно путем сканирования классов для этих аннотаций вручную. –

+0

Не могли бы вы помочь с образцом @Pavel Muravyov –