gpt4 book ai didi

java - 等效于 jms :listener-container 的 Spring 注释

转载 作者:IT老高 更新时间:2023-10-28 13:49:56 27 4
gpt4 key购买 nike

我正在研究使用 Spring 的 JMS,并希望在我的 MVC webapp 启动时创建特定队列的一些并发消费者。

我在 SO (https://stackoverflow.com/a/6861144) 的其他地方看到了以下 XML 配置:

<jms:listener-container concurrency="10">
<jms:listener destination="some.queue" ref="fooService" method="handleNewFoo"/>
</jms:listener-container>

我在 Java 中使用 Spring 配置,而不是 XML。有人可以帮忙看看 Spring 注解的语法吗?

我现有的 JmsConfiguration.java 看起来像:

@Configuration
@ComponentScan(basePackages="net.domain.orders")
public class JmsConfiguration {

@Bean
public JmsTemplate jmsTemplate() {
JmsTemplate jmsTemplate = new JmsTemplate();
jmsTemplate.setDefaultDestination(new ActiveMQQueue("orders.queue"));
jmsTemplate.setConnectionFactory(connectionFactory());
return jmsTemplate;
}

@Bean
public ActiveMQConnectionFactory connectionFactory() {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL("tcp://localhost:61616");
return activeMQConnectionFactory;
}

}

我搜索了很多示例,但到目前为止我发现的都是基于 XML 的。

最佳答案

你想要DefaultMessageListenerContainer :

@Bean
public DefaultMessageListenerContainer jmsListenerContainer() {
DefaultMessageListenerContainer dmlc = new DefaultMessageListenerContainer();
dmlc.setConnectionFactory(connectionFactory());
dmlc.setDestination(new ActiveMQQueue("orders.queue"));

// To schedule our concurrent listening tasks
dmlc.setTaskExecutor(taskExecutor());

// To perform actual message processing
dmlc.setMessageListener(messageListener());

dmlc.setConcurrentConsumers(10);

// ... more parameters that you might want to inject ...
return dmlc;
}

阅读 the JMS namespace documentation有关将 XML 参数映射到 Java 参数的信息。

关于java - 等效于 jms :listener-container 的 Spring 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24872617/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com