使用Spring JMS简化异步消息处理
来源:互联网 发布:qt5 编程入门 源码 编辑:程序博客网 时间:2024/04/27 23:46
http://www.onjava.com/lpt/a/6490
这片文章介绍了Spring是如何简化异步消息调用的,它通过一个贷款的例子来说Spring是如何减少
开发中的量的。
下面是传统开发需要的代码量
public void sendMessage() { queueName = "queue/CreditRequestSendQueue"; System.out.println("Queue name is " + queueName); /* * Create JNDI Initial Context */ try { Hashtable env = new Hashtable(); env.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); env.put("java.naming.provider.url","localhost"); env.put("java.naming.factory.url.pkgs", "org.jnp.interfaces:org.jboss.naming"); jndiContext = new InitialContext(env); } catch (NamingException e) { System.out.println("Could not create JNDI API " + "context: " + e.toString()); } /* * Get queue connection factory and queue objects from JNDI context. */ try { queueConnectionFactory = (QueueConnectionFactory) jndiContext.lookup("UIL2ConnectionFactory"); queue = (Queue) jndiContext.lookup(queueName); } catch (NamingException e) { System.out.println("JNDI API lookup failed: " + e.toString()); } /* * Create connection, session, sender objects. * Send the message. * Cleanup JMS connection. */ try { queueConnection = queueConnectionFactory.createQueueConnection(); queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queueSender = queueSession.createSender(queue); message = queueSession.createTextMessage(); message.setText("This is a sample JMS message."); System.out.println("Sending message: " + message.getText()); queueSender.send(message); } catch (JMSException e) { System.out.println("Exception occurred: " + e.toString()); } finally { if (queueConnection != null) { try { queueConnection.close(); } catch (JMSException e) {} } }}
然后是Spring的代码
public void send() { try { ClassPathXmlApplicationContext appContext = new
ClassPathXmlApplicationContext(new String[] { "spring-jms.xml"}); System.out.println("Classpath loaded"); JMSSender jmsSender = (JMSSender)appContext.getBean("jmsSender"); jmsSender.sendMesage(); System.out.println("Message sent using Spring JMS."); } catch(Exception e) { e.printStackTrace(); }}
表面上看Spring获胜,代码少了很多,但是我们再来看看Spring配置的XML
org.jnp.interfaces.NamingContextFactory localhost org.jnp.interfaces:org.jboss.naming UIL2ConnectionFactory queue/CreditRequestSendQueue queue/CreditReqeustReceiveQueue 30000 我们开始认清Spring的真面目把。无厘头的配置,XML的梦魇。从一种混乱到另一种还乱。
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- 使用Spring JMS简化异步消息处理
- SOA和ESB的区别
- Open-source ERP 公司 Compiere 任命新的CEO
- 世界上最简单的模板,比Smarty,Xtemplate还要强大
- IBM实验室对SWT, Swing 和 AWT 的特征比较
- Windows Mobile 设备中心 for vista 一览
- 使用Spring JMS简化异步消息处理
- 八皇后问题
- 用Mind Map 激发你的记忆潜能
- 看看你是哪一类型的CTO
- VS2005字符串资源不能识别转义字符
- ESB的几种模式
- 关于xml编码问题在VB,PHP,JAVA下的解决方案
- XForm + Ajax
- 邮件中标题格式