maven整合springmvc-Spring-ActiveMQ
2017-03-01 11:30
585 查看
在Spring中搭建消息代理
1.安装ActiveMQ
ActiveMQ是一个开源的消息代理, 也是使用JMS进行异步消息传递的最佳选择。在官方网站下载后,解压缩安装包,上传到suselinux使用tar -zxvf apache-activemq-5.12.1-bin.tar.gz 解压即可使用。运行后进入http://192.168.1.132:8161/admin表明安装成功, 这时就可以使用它进行消息代理了。
2.使用maven配置好依赖的jar文件
3.配置框架的配置文件
spring配置文件
spring-quartz.xml配置文件
spring-activemq.xml配置文件
spring-mvc.xml配置文件
web.xml配置文件
4.编写消息服务
消息发送者
消息接收者
调用发送者的服务
至此框架整合activemq结束,感谢大侠的访问^V^,如有错误请批评指证,谢谢.
1.安装ActiveMQ
ActiveMQ是一个开源的消息代理, 也是使用JMS进行异步消息传递的最佳选择。在官方网站下载后,解压缩安装包,上传到suselinux使用tar -zxvf apache-activemq-5.12.1-bin.tar.gz 解压即可使用。运行后进入http://192.168.1.132:8161/admin表明安装成功, 这时就可以使用它进行消息代理了。
2.使用maven配置好依赖的jar文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.guoyao.jms</groupId> <artifactId>mvn-msg</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <properties> <project-build-activemq-name>activemq</project-build-activemq-name> <!-- Generic properties --> <java.version>1.7</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- Web --> <jsp.version>2.2</jsp.version> <jstl.version>1.2</jstl.version> <servlet.version>2.5</servlet.version> <!-- Spring --> <spring-framework.version>3.2.3.RELEASE</spring-framework.version> <!-- Logging --> <logback.version>1.0.13</logback.version> <slf4j.version>1.7.5</slf4j.version> <!-- Test --> <junit.version>4.11</junit.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.5</version> </dependency> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring-framework.version}</version> </dependency> <!-- Other Web dependencies --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${servlet.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>${jsp.version}</version> <scope>provided</scope> </dependency> <!-- Spring and Transactions --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.9.0</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>5.9.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>${spring-framework.version}</version> </dependency> </dependencies> <build> <finalName>${project-build-activemq-name}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <target>1.7</target> <source>1.7</source> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> </resources> </build> </project>
3.配置框架的配置文件
spring配置文件
<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd "> <context:annotation-config /> <context:component-scan base-package="activemq.*"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <import resource="spring-quartz.xml" /> <import resource="spring-activemq.xml" /> </beans>
spring-quartz.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:annotation-config /> <bean id="quartzFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="capacityDataPublisherJobTrigger" /> </list> </property> </bean> <bean id="capacityDataPublisherJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="capacityDataPublisherJobDetail" /> <property name="cronExpression"> <value>0 0/2 * * * ?</value> </property> </bean> <bean id="capacityDataPublisherJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="capacityDataPublisherJob" /> <property name="targetMethod" value="run" /> <property name="concurrent" value="false" /> </bean> <bean id="capacityDataPublisherJob" class="activemq.TestSenderService" init-method="run"> </bean> </beans>
spring-activemq.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:amq="http://activemq.apache.org/schema/core" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.8.0.xsd"> <!-- Activemq 连接工厂 --> <bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <constructor-arg value="wuchao" /> <!-- 此处是本人在activemq中的账号 --> <constructor-arg value="123456" /> <!-- 此处为密码 --> <constructor-arg value="failover:(tcp://192.168.1.132:61616)?timeout=2000" /> </bean> <!-- ConnectionFactory Definition --> <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <constructor-arg ref="activeMQConnectionFactory" /> </bean> <!-- Default Destination Queue Definition --> <!-- 测试配置多个Destination --> <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"> <constructor-arg index="0" value="test.activemq.queue" /> </bean> <!-- JmsTemplate Definition --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory" /> <property name="defaultDestination" ref="destination" /> </bean> <!-- Message Sender Definition --> <bean id="messageSender" class="activemq.publisher.MessageSender"> <constructor-arg index="0" ref="jmsTemplate" /> <constructor-arg index="1" ref="destination" /> </bean> <!-- 消息监听器,主要监听的目的地址 Message Receiver Definition --> <bean id="messageReceiver" class="activemq.consumer.MessageReceiver"> </bean> <bean class="org.springframework.jms.listener.SimpleMessageListenerContainer"> <property name="connectionFactory" ref="connectionFactory" /> <property name="destinationName" value="test.activemq.queue" /> <property name="messageListener" ref="messageReceiver" /> </bean> </beans>
spring-mvc.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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:annotation-config/> <mvc:annotation-driven /> <!-- 设置使用注解的类所在的jar包 --> <context:component-scan base-package="activemq.*"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" /> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository" /> </context:component-scan> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- Example: a logical view name of 'showMessage' is mapped to '/WEB-INF/jsp/showMessage.jsp' --> <property name="prefix" value="/WEB-INF/view/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>activemq</display-name> <!-- - Location of the XML file that defines the root application context. - Applied by ContextLoaderListener. --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- - Servlet that dispatches request to registered handlers (Controller implementations). --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
4.编写消息服务
消息发送者
package activemq.publisher; import javax.jms.Destination; import org.springframework.jms.core.JmsTemplate; public class MessageSender { private final JmsTemplate jmsTemplate; private final Destination destination; public MessageSender(final JmsTemplate jmsTemplate, final Destination destination) { this.jmsTemplate = jmsTemplate; this.destination = destination; } public void send(final String text) { try { jmsTemplate.setDefaultDestination(destination); jmsTemplate.convertAndSend(text); System.out.println("#######################################################"); System.out.println("发送消息 : " + text); } catch (Exception e) { e.printStackTrace(); } } }
消息接收者
package activemq.consumer; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; public class MessageReceiver implements MessageListener { public void onMessage(Message message) { if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; try { String text = textMessage.getText(); System.out.println("接收到消息: " + text); System.out.println("#######################################################"); } catch (JMSException e) { e.printStackTrace(); } } } }
调用发送者的服务
package activemq; import org.springframework.beans.factory.annotation.Autowired; import activemq.publisher.MessageSender; public class TestSenderService { @Autowired private MessageSender messageSender; public void run() { messageSender.send("message"); } }
至此框架整合activemq结束,感谢大侠的访问^V^,如有错误请批评指证,谢谢.
相关文章推荐
- Eclipse下使用Maven整合SSM(spring springmvc mybatis)
- spring-springmvc-mybatis-maven整合的简单工程
- spring,springMVC,mybatis,maven框架整合
- spring、springmvc、mybatis整合搭建ssm项目(Eclipse+maven)
- 用maven整合springmvc和spring
- 【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好
- IntelliJ IDEA 搭建基于Maven 的SSM(一)(spring,springMvc,Mybatis)框架整合
- SSM整合,spring4.3.6.RELEASE,springmvc,mybatis3.4.2,maven聚合项目整合
- maven + SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
- Maven进行springmvc、mybatis、spring的整合
- spring、springmvc和mybaites在maven整合
- 基于MAVEN的SSM(SPRING,SPRINGMVC,MYBATIS)整合的WEB工程
- maven整合:最新ssm框架实现spring4.2,springmvc4.2,mybatis3.2
- maven SpringMVC,Spring,Mybatis整合
- Spring整合Mongodb,Maven的依赖,Spring配置,MongoDB的公共操作类,使用SpringMVC的Controller进行测试并返回结果的案例
- 基于Maven整合SpringMVC、Spring和Mybatis框架
- maven整合:最新ssm框架实现spring4.2,springmvc4.2,mybatis3.2
- SpringMVC-Spring-Mybatis-Maven整合备忘
- SpringMVC+Spring+Mybatis+Maven整合-mybatis及SpringMVC、Mybatis查询
- spring-springmvc-mybatis(ssm)maven框架整合教程