我是Spring jms世界的新手,在此之前我已经使用了没有spring的核心java程序我们手动创建了连接工厂但是现在我正在学习spring jms,现在我已经配置了xml但是plesae建议我如何设计相应的java类,通过它我可以将文本消息发送到队列
<bean id="tibcoEMSJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">com.tibco.tibjms.naming.TibjmsInitialContextFactory</prop>
<prop key="java.naming.provider.url">tcp://abcnet:707</prop>
<prop key="java.naming.security.principal">abc</prop>
<prop key="java.naming.security.credentials">abc</prop>
</props>
</property>
</bean>
<bean id="tibcoEMSConnFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate">
<ref bean="tibcoEMSJndiTemplate" />
</property>
<property name="jndiName">
<value>GenericConnectionFactory</value>
</property>
</bean>
<bean id="tibcosendJMSTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref local="tibcoEMSConnFactory" />
</property>
<property name="defaultDestinationName">
<value>test.data</value>
</property>
<property name="pubSubDomain">
<value>false</value>
</property>
<property name ="receiveTimeout">
<value>120000</value>
</property>
</bean>
人们建议我已经设计了下面的java类,但我的问题是应该有另一个类由main methid组成并且加载我的xml,我设计了下面的java类但是我知道它不正确如果你不介意请你说明如何设计java类,以便我可以掌握以及我的上面的xml注入依赖关系。
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Queue;
import javax.jms.Session;
import org.springframework.jms.core.MessageCreator;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jndi.JndiTemplate;
public class JmsQueueSender {
private JmsTemplate jmsTemplate;
private Queue queue;
public void setConnectionFactory(ConnectionFactory cf) {
this.jmsTemplate = new JmsTemplate(cf);
}
public void setQueue(Queue queue) {
this.queue = queue;
}
public void simpleSend() {
this.jmsTemplate.send(this.queue, new MessageCreator() {
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("hello queue world");
}
});
}
}
答案 0 :(得分:1)
JmsTemplate
最简单的用法是......
tibcoJmsTemplate.convertAndSend("foo");
...会将foo
转换为TextMessage
并将其发送到您的默认目标(test.data
)。
如果您需要访问会话,JmsTemplate
具有这些高级方法,并提供更多高级功能,或者在转换后对邮件进行后处理。