English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
لإعداد دمج Spring مع JMS، تحتاج إلى إنشاء تطبيقين.
تطبيق مستقبل JMS تطبيق Sender JMS
لإعداد تطبيق JMS باستخدام Spring، نستخدم Apache خادم Active MQ إنشاء مجموعة.
لنلتمشق الخطوات البسيطة لإعداد تطبيق Spring المدمج. باستخدام JMS:
1、تحتاج إلى إضافة Spring core ، Spring misc ، Spring aop ، Spring j2ee و نواة التسجيل المستدامة لـ Spring ملفات jar.
تحميل جميع ملفات jar الخاصة بـ Spring، بما في ذلك aop، mvc، j2ee، remoting، oxm وما إلى ذلك.
2、إضافة activemqall5.9.jar يوجد الملف في مجلد activemq.
تحميل Active MQ الخادم تحميل Active MQ
انقر مزدوجًا activemq. bat يوجد الملف في مجلد apache-activemq-5.9.1-bin \ apache-activemq-5.9.1 \ bin \ win64 أو win32.
الآن سيتم فتح واجهة تحكم خادم ActiveMQ.
من خلال http://localhost:8161/admin/لزيارة واجهة التحكم الخاصة بخدمة ActiveMQ.
الآن، انقر على روابط الصفحة، وقم بكتابة في حقل النص myqueue ثم انقر على زر إنشاء
نحن سنرى الخطوات البسيطة لربط تطبيق Spring بـ JMS:
MyMessageListener.java TestListener.java applicationContext.xml
1)MyMessageListener.java
حزمة com.w3codebox; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; public class MyMessageListener implements MessageListener{ @Override public void onMessage(Message m) { TextMessage message=(TextMessage)m; try{ System.out.println(message.getText()); }catch (Exception e) {e.printStackTrace();} } }
2)TestListener.java
حزمة com.w3codebox; import org.springframework.context.support.GenericXmlApplicationContext; public class TestListener { public static void main(String[] args) { GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.load("classpath:applicationContext.xml"); ctx.refresh(); while(true){} } }
3)applicationContext.xml
<?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:jms="http://www.springframework.org/schema/jms" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> p:brokerURL="tcp://localhost:61616" /> <bean id="listener" class="com.w3codebox.MyMessageListener"></bean> <jms:listener-container container-type="default" connection-factory="connectionFactory"> acknowledge="auto"> <jms:listener destination="myqueue" ref="listener" method="onMessage"></jms:listener> </jms:listener-container> </beans>
دعونا نرى ملفات إنشاء تطبيق Sender JMS:
MyMessageSender.java TestJmsSender.java applicationContext.xml
1)MyMessageListener.java
حزمة com.w3codebox; استيراد javax.jms.*; استيراد org.springframework.beans.factory.annotation.Autowired; استيراد org.springframework.jms.core.JmsTemplate; استيراد org.springframework.jms.core.MessageCreator; استيراد org.springframework.stereotype.Component; @Component("messageSender") public class MyMessageSender { @Autowired private JmsTemplate jmsTemplate; public void sendMessage(final String message) { jmsTemplate.send(new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { الرجاء ارجاع رسالة نصية جديدة باستخدام createTextMessage(message); } }); } }
2)TestJmsSender.java
حزمة com.w3codebox; import org.springframework.context.support.GenericXmlApplicationContext; public class TestJmsSender { public static void main(String[] args) { GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.load("classpath:applicationContext.xml"); ctx.refresh(); MyMessageSender sender = ctx.getBean("messageSender", MyMessageSender.class); sender.sendMessage("hello jms3"); } }
3)applicationContext.xml
<?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:context="http://www.springframework.org/schema/context" xmlns:jms="http://www.springframework.org/schema/jms" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> p:brokerURL="tcp://localhost:61616" /> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <constructor-arg name="connectionFactory" ref="connectionFactory"></constructor-arg> <property name="defaultDestinationName" value="myqueue"></property> </bean> </context:component-scan base-package="com.w3codebox"> </beans>