Spring环境中的队列创建
我是SpringJMS新手,我研究了如何使用Spring和jboss创建队列并使用它们。我想知道当使用JndiObjectFactoryBean spring配置进行配置时,队列是如何创建的 我们需要编写一些xml配置来创建队列吗?我已经看到了在文件中编写队列配置并将其放置在jboss的deploy文件夹中的各种示例。因此,在使用Spring时,我们需要编写这些配置吗 请帮帮我,我卡住了Spring环境中的队列创建,spring,jboss,jms,spring-jms,Spring,Jboss,Jms,Spring Jms,我是SpringJMS新手,我研究了如何使用Spring和jboss创建队列并使用它们。我想知道当使用JndiObjectFactoryBean spring配置进行配置时,队列是如何创建的 我们需要编写一些xml配置来创建队列吗?我已经看到了在文件中编写队列配置并将其放置在jboss的deploy文件夹中的各种示例。因此,在使用Spring时,我们需要编写这些配置吗 请帮帮我,我卡住了 谢谢。当您使用一些JEE容器时,如果您依赖它的选项:JDBC、JMS等,那么它会更好。在您的情况下,您应该使
谢谢。当您使用一些JEE容器时,如果您依赖它的选项:JDBC、JMS等,那么它会更好。在您的情况下,您应该使用JBOSS配置来配置
队列
和连接工厂
从Spring应用程序中,您只需要从JNDI获取对这些对象的引用。似乎对于@配置
或任何@组件
服务来说,资源应该足够了
下面是一些关于如何配置Spring以在注释配置的情况下处理JNDI的答案:当您使用通过JNDI访问的JMS代理时,您只需要确保Spring能够将表示
javax.JMS.Destination
的字符串解析为实际的目标
Spring使用DestinationResolver
实现这一点。因为您已经将Spring配置为连接到JMS代理,所以您必须在某处具有JNDI配置(通过使用JNDI.properties
或其他形式)。如果不是这样的话,您可以使用它轻松创建jndemplate
一旦有了它,您需要如下定义bean,假设jndemplate
bean的名称为jndemplate
:
@Bean
public JndiDestinationResolver destinationResolver() {
JndiDestinationResolver destinationResolver = new JndiDestinationResolver();
destinationResolver.setJndiTemplate(jndiTemplate());
return destinationResolver;
}
或
然后您需要配置此destinationResolver,而不是默认值。您可以在JmsTemplate
和消息侦听器容器上执行此操作(检查destinationResolver
或destinationResolver
属性)
队列或主题的名称是jndi条目。Chekc您在JBoss中用于从基于Spring的代码中查找它的JNDI名称
<bean id="destinationResolver"
class="org.springframework.jms.support.destination.JndiDestinationResolver">
<property name="jndiTemplate" ref="jndiTemplate"/>
</bean>