Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rabbit="http://www.springframework.org/schema/rabbit"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/rabbit
- http://www.springframework.org/schema/rabbit/spring-rabbit-1.3.xsd">
- <!-- RabbitMQ -->
- <rabbit:connection-factory id="rabbitConnectionFactory" addresses="${rabbitMq.hostName}" username="${rabbitMq.userName}" password="${rabbitMq.password}" virtual-host="${rabbitMq.vHost}" />
- <rabbit:admin connection-factory="rabbitConnectionFactory"/>
- <!-- RabbitMQ Template -->
- <rabbit:template id="rabbitTemplate" connection-factory="rabbitConnectionFactory" message-converter="messageConverter" exchange="${rabbitMq.myExchange}" />
- <!-- RabbitMQ Exchange and Binding Definition -->
- <rabbit:direct-exchange name="${rabbitMq.yEmxchange}">
- <rabbit:bindings>
- <rabbit:binding key="${rabbitMq.routing.key.events}" queue="${rabbitMq.queue.events.name}"/>
- </rabbit:bindings>
- </rabbit:direct-exchange>
- <!-- RabbitMQ Queue Definitions -->
- <rabbit:queue name="${rabbitMq.queue.events.name}" >
- <rabbit:queue-arguments>
- <entry key="x-ha-policy" value="all"/>
- </rabbit:queue-arguments>
- </rabbit:queue>
- <!-- Listeners -->
- <rabbit:listener-container id="listener" connection-factory="rabbitConnectionFactory" concurrency="3" max-concurrency="5" requeue-rejected="false">
- <rabbit:listener ref="eventNotificationAdapter" queues="${rabbitMq.queue.events.name}" priority="${rabbitMq.queue.events.priority}" />
- </rabbit:listener-container>
- <!-- Message Listener Adapters -->
- <bean id="eventNotificationAdapter" class="org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter">
- <constructor-arg name="delegate" ref="eventConsumer"/>
- <constructor-arg name="messageConverter" ref="messageConverter"/>
- <property name="defaultListenerMethod" value="process"/>
- </bean>
- <bean id="messageConverter" class="org.springframework.amqp.support.converter.JsonMessageConverter"/>
- </beans>
- @Component("eventConsumer")
- public class EventQueueConsumer {
- @Autowired
- EventsClient eventsClient;
- private static Logger logger = LoggerFactory.getLogger(EventQueueConsumer.class);
- public void process(MyEvent myEvent) {
- logger.info("processing myEvent: {}", myEvent);
- try{
- eventsClient.sendEvent(myEvent);
- } catch(Exception e) {
- logger.error("Exception occurred trying to send event.", e);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement