黑马程序员技术交流社区

标题: 【郑州校区】Java之品优购课程讲义_day14(2) [打印本页]

作者: 谷粒姐姐    时间: 2018-10-15 09:56
标题: 【郑州校区】Java之品优购课程讲义_day14(2)
1.1.1 修改 tomcat 启动端口
在 src/main/resources 下创建 application.properties
[AppleScript] 纯文本查看 复制代码
server.port=8088
重新运行引导类。地址栏输入

http://localhost:8088/info

1.1.1 读取配置文件信息
在 src/main/resources 下的 application.properties  增加配置
[AppleScript] 纯文本查看 复制代码
url=http://www.itcast.cn
我要在类中读取这个配置信息,修改  HelloWorldController
[AppleScript] 纯文本查看 复制代码
@Autowired


private  Environment  env;




@RequestMapping("/info")


public  String  info(){


return  "HelloWorld~~"+env.getProperty("url");
}
1.1.1 热部署
我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,能不能在我修改代码后不重启就能生效呢?可以,在
pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。
[AppleScript] 纯文本查看 复制代码
<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

</dependency>
file:///C:\Users\user\AppData\Local\Temp\ksohtml\wps699C.tmp.jpg赶快试试看吧,是不是很爽。

1.3 Spring Boot 与 ActiveMQ 整合
1.3.1 使用内嵌服务
(1)在 pom.xml 中引入 ActiveMQ 起步依赖
[AppleScript] 纯文本查看 复制代码
<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-activemq</artifactId>

</dependency>
(2)创建消息生产者
[AppleScript] 纯文本查看 复制代码
/**

*消息生产者

*@author  Administrator

*/
[AppleScript] 纯文本查看 复制代码
@RestController

public  class  QueueController  { @Autowired
private  JmsMessagingTemplate  jmsMessagingTemplate;



@RequestMapping("/send")

public  void  send(String  text){ jmsMessagingTemplate.convertAndSend("itcast",  text);
}

}
(3)创建消息消费者
[AppleScript] 纯文本查看 复制代码
@Component

public  class  Consumer  { @JmsListener(destination="itcast") public  void  readMessage(String  text){
System.out.println("接收到消息:"+text);

}

}
测试:启动服务后,在浏览器执行

http://localhost:8088/send.do?text=aaaaa

即可看到控制台输出消息提示。Spring Boot 内置了 ActiveMQ 的服务,所以我们不用单独启动也可以执行应用程序。

1.3.1 使用外部服务
在 src/main/resources 下的 application.properties 增加配置, 指定 ActiveMQ 的地址

[AppleScript] 纯文本查看 复制代码
spring.activemq.broker-url=tcp://192.168.25.135:61616
运行后,会在 activeMQ 中看到发送的 queue
1.3.1 发送 Map 信息
(1)修改 QueueController.java
[AppleScript] 纯文本查看 复制代码
@RequestMapping("/sendmap")


public  void  sendMap(){


Map  map=new  HashMap<>();
map.put("mobile",  "13900001111"); map.put("content",  "恭喜获得 10 元代金券");

jmsMessagingTemplate.convertAndSend("itcast_map",map);


}
(2)修改 Consumer.java
[AppleScript] 纯文本查看 复制代码
@JmsListener(destination="itcast_map")


public  void  readMap(Map  map){ System.out.println(map);







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2