SpringBoot入门Demo到整合ActiveMQ步骤详解,快速开发一个微服务程序!

xiaoxiao2021-02-28  38

1.1什么是Spring Boot  

Spring诞生是Java企业版(Java企业版,JEE,也称为J2EE)的轻量级代替品。通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

1.2 Spring Boot入门小Demo 

1.2.1起步依赖  创建Maven工程springboot_demo(打包方式jar)    在pom.xml中添加如下依赖  <母体> <的groupId> org.springframework.boot </的groupId> <artifactId的>弹簧引导起动父</ artifactId的> <版本> 1.4.0.RELEASE </版本> </父> <依赖性> <依赖性> <的groupId> org.springframework.boot </的groupId> <artifactId的>弹簧引导起动的Web </ artifactId的> </依赖性> </依赖> 我们发现默认情况下工程的JDK版本是1.6,而我们通常使用1.7的版本,所以我们需要在pom.xml中添加以下配置    <性能> <java.version> 1.7 </java.version> </属性>

并且不需要额外添加插件,直接更改,一行搞定。

1.2.3创建启动引导类 

只需要创建一个引导类。程序即可跑起来 包cn.guyue.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication 公共类Application { public static void main(String [] args){ SpringApplication.run(Application.class,args); } }

简单解释一下,

@SpringBootApplication其实就是以下三个注解的总和 

@Configuration:用于定义一个配置类  @EnableAutoConfiguration:Spring Boot会自动根据你jar包的依赖来自动配置项目。 

@ComponentScan:告诉Spring自动扫描并且装入bean容器。

1.2.4 Spring Boot实现Hello World输出 

@RestController 公共类HelloWorldController { @RequestMapping( “/信息”) public String info(){ 返回“HelloWorld”; } } 我们运行启动类来运行程序  在浏览器地址栏输入http:// localhost:8080 / info即可看到运行结果 

1.2.5修改tomcat启动端口 

**在src / main / resources下创建application.properties ** server.port = 8088 重新运行引导类地址栏输入:HTTP://本地主机:8088 /资讯  

1.2.6读取配置文件信息 

在src / main / resources下的application.properties增加配置      url = http://www.bklianmeng.cn  我要在类中读取这个配置信息,修改HelloWorldController    @Autowired 私人环境env; //注入这个读取的豆即可 @RequestMapping( “/信息”) public String info(){ 返回“HelloWorld ~~”+ env.getProperty(“url”); //读取就是如此简单

1.2.7热部署 

我们在开发中反复修改类,页面等资源,每次修改后都是需要重新启动才生效,每这样 次启动都很麻烦,浪费了大量的时间,能不能在我修改代码后不重启就能生效呢?可以,在pom.xml中添加如下配置就可以实现这样的功能,我们称之为热部署。  <依赖性> <的groupId> org.springframework.boot </的groupId> <artifactId的>弹簧引导devtools </ artifactId的> </依赖性>

添加依赖后即可完成热部署,再修改配置文件或者是直接修改代码无需重启服务器,即可实现刷新即用。

1.3 ** Spring Boot与ActiveMQ整合**

1.3.1使用内嵌服务 
(1)在pom.xml中引入ActiveMQ起步依赖  <依赖性> <的groupId> org.springframework.boot </的groupId> <artifactId的>弹簧引导起动的ActiveMQ </ artifactId的> </依赖性> (2)创建消息生产者  / ** *消息生产者 * @作者管理员 * / @RestController 公共类QueueController { @Autowired 私人JmsMessagingTemplate jmsMessagingTemplate; @RequestMapping( “/发送”) public void send(String text){ jmsMessagingTemplate.convertAndSend(“guyue”,文字); } } (3)创建消息消费者  @零件 公共类Consumer { @JmsListener(destination =“guyue”) //加上监听注解才可以使用内置的ActiveMQ接收到消息,并且目标属性要与发送的一致 public void readMessage(String text){ 的System.out.println( “接收到消息:” +文字); } } 测试:启动服务后,在浏览器执行   的http://本地主机:8088 /发送文本= AAAAA 

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

1.3.2使用外部服务 

在src / main / resources下的application.properties增加配置,指定ActiveMQ的地址  spring.activemq.broker-url = tcp://192.168.25.128:61616 <! - 注意这里的配置文件的属性名是固定的 - > 运行后,会在activeMQ中看到发送的队列  

 1.3.3发送地图信息 

(1)修改QueueController.java(只需要封装一个Map即可,其他与文本消息一致)   @RequestMapping( “/ sendmap”) public void sendMap(){ Map map = new HashMap <>(); map.put(“mobile”,“16621100000”); map.put(“content”,“恭喜获得10元代金券”); jmsMessagingTemplate.convertAndSend( “guyue_map”,地图); } (2)修改Consumer.java  @JmsListener(目的地= “guyue_map”) public void readMap(Map map){ 的System.out.println(地图); }

如果是在项目中使用的ActiveMQ的的话,在刚刚搭建的基础上添加自己所需要实现的功能代码即可,在项目中使用的话一般是网络层作为生产者,向微服务发送消息或者是指令,由刚刚整合好的程序作为消费者监听消息,一旦生产者向它发送消息,微服务接收到消息后即可开始相应的功能。

由于微服务实现代码比较冗长这里就不贴出,如有需要沟通欢迎留言,不足之处还望指出!

 
转载请注明原文地址: https://www.6miu.com/read-2800216.html

最新回复(0)