کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش JMS در Spring

Spring با JMS

ادغام Spring و JMS

برای ادغام Spring با JMS باید دو برنامه کاربردی زیر را ایجاد کنیم: برنامه گیرنده JMS و برنامه فرستنده JMS . برای تولید برنامه JMS با استفاده از Spring ، از Active MQ Server مربوطApache برای ایجاد صف استفاده می کنیم. حال مراحل ساده ادغام برنامه Spring با JMS را با هم می بینیم.


فایل های jar مورد نیاز

1- باید فایل های jar spring core, spring misc,spring aop, spring j2ee و spring persistence core را اضافه کنید. تمام فایل های jar مربوط به Spring شامل aop,mvc,j2ee,remoting,oxm و غیره را دانلود کنید.

2- فایل activemqall5.9.jar را داخل دایرکتوری activemq اضافه کنید.

در سرور ActiveMQ یک صف ایجاد کنید. سرور Active MQ را دانلود کنید. بر روی فایل activemq.bat، موجود در دایرکتوری apache-activemq-5.9.1-bin\apache-activemq-5.9.1\bin\win64 یا win32 دبل کلیک کنید. حال کنسول سرور activemq باز خواهد شد. با استفاده از url، http ://localhost:8161/admin/ به کنسول ادمین(admin) سرور activemq دسترسی پیدا کنید.


Open activemq server

حال روی لینک Queues کلیک کنید و در فیلد متن بنویسید myqueue و روی دکمه create کلیک کنید.


create queue in activemq server1
create queue in activemq server2

1- برنامه گیرنده JMS

مراحل ساده ادغام برنامه کاربردی Spring با JMS را با هم می بینیم:

  1. MyMessageListener.java
  2. TestListener.java
  3. applicationContext.xml

1- MyMessageListener.java

package com.javatpoint;  
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

package com.javatpoint;  
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"
          14. p:brokerURL="tcp://localhost:61616" />
  
   
< bean id="listener" class="com.javatpoint.MyMessageListener">< /bean>  
   
< jms:listener-container container-type="default" connection-factory="connectionFactory"
                            19. acknowledge="auto">  
< jms:listener destination="myqueue" ref="listener" method="onMessage">< /jms:listener>  
< /jms:listener-container>  
   
< /beans>  

2- برنامه فرستنده JMS

فایل های مورد نیاز برای ایجاد برنامه فرستنده JMS:

  1. MyMessageSender.java
  2. TestJmsSender.java
  3. applicationContext.xml

1- MyMessageListener.java

package com.javatpoint;  
import javax.jms.*;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.jms.core.JmsTemplate;  
import org.springframework.jms.core.MessageCreator;  
import 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 {  
            return session.createTextMessage(message);  
        }  
    });  
}  
}  

2- TestJmsSender.java

package com.javatpoint;  
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"
          17. 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.javatpoint">< /context:component-scan>  
   
< /beans>

1399/01/24 2609 412
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...