在上一篇文章中,介绍了使用spring-boot默认的activemq,也就是不须要链接activemq-server的写法,若是没看过的同窗,能够点击下面的链接查看html
http://www.javashuo.com/article/p-vnuptsfa-kk.htmljava
下面,咱们来介绍下,怎么使用本地起来avtivemq-server的配置,以及代码linux
首先,咱们去 http://activemq.apache.org/download.html 下载activemq,我下载的是5.8linux的版本,各位能够根据本身的jdk版本以及运行环境进行下载.web
个人环境是: jdk版本号为1.8,springboot版本号为1.4.1spring
运行起来activemq后,咱们输入 http://localhost:8161 进入activemq的管理页面:apache
点击 Manage ActiveMQ broker 会让你输入 帐号密码,默认的帐号密码都是 adminspringboot
进去后,会看到以下信息session
而后点击 queues 查看队列:app
咱们能够发现,队列内目前暂时什么都没有,就等咱们往里面添加tcp
------------------------------------分割线-------------------------------------
咱们须要先引入pom依赖,pom配置以下:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--引入对activemq的支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> </dependencies>
jar包已经引入,接下来,就是写测试代码,咱们须要一个消息对象,一个消息监听者(也就是消费者),一个消息发送者(也就是生产者).
消息对象代码:
/** * 项目名:SpringBootDemo * 建立人:贺小五 * 建立时间:16/11/27 下午6:21 * 类名:MessageObject * 类描述: * 消息对象 */ public class MessageObject implements MessageCreator{//实现MessageCreator的createMessage方法,建立消息 @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage("测试消息队列");//调用session的createTextMessage建立消息 } }
消费者代码:
/** * 项目名:SpringBootDemo * 建立人:贺小五 * 建立时间:16/11/27 下午6:25 * 类名:MessageListener * 类描述: * 消息监听者 */ //注册为一个bean @Component public class MessageListener { //使用@JmsListenter监听队列名为my-message的队列是否有新消息 //若是有新消息,则取出进行处理 //@JmsListenter 注解是spring4.1版本或者以上才有的注解 @JmsListener(destination = "my-message") public void removeMessage(String msg){ System.out.println("接收到的消息内容:<"+msg+">"); } }
下面就是消息发送者的代码:
/** * 项目名:SpringBootDemo * 建立人:贺小五 * 建立时间:16/11/27 下午6:27 * 类名:MessagePush * 类描述: * 消息推送者 */ @Component //实现CommandLineRunner 接口是为了程序一块儿动,就调用run方法,读者能够不这么写 //使用@Scheduled跟@EnableScheduling来定时执行往队列内放消息 public class MessagePush implements CommandLineRunner{ //注入 jmsTemplate模板,调用send方法,发送消息对象到名为my-message的队列 @Autowired private JmsTemplate jmsTemplate; @Override public void run(String... args) throws Exception { jmsTemplate.send("my-message",new MessageObject()); } }
接下来就是执行方法测试了,main方法代码以下:
@SpringBootApplication(scanBasePackages = {"com"}) public class DemoApplication{ public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
最后,咱们在 application.properties配置文件里面,配置activemq-server的链接地址:
#队列地址 spring.activemq.broker-url=tcp://localhost:61616 #帐户 spring.activemq.user= #密码 spring.activemq.password= #是不是内存模式 spring.activemq.in-memory=true
以上的配置,只是最基础的配置,须要详细配置的话,请查阅官方文档,这里就不贴出来了
DemoApplication的main方法,查看打印结果:
查看activemq队列的queues管理页面:
queues下面前5个title从左往右分别表示
说明成功了,以上就是 基础 activemq-server的基本写法,
若是你是做为一个队列的消费者,只须要编写消费者代码,使用@JmsListenter注解到方法上,而且制定队列名称,就能监听该队列内的消息.若是你是一个生产者,那就须要定义一个消息对象跟一个消息发送者.以上就是本篇文章的所有内容,具体使用,请根据业务须要进行更改!
以上,均为本人测试而得出的结果,可能会有出入,或者错误,欢迎指正
欢迎转载,请注明出处跟做者,谢谢!