springBoot入门
什么是springBoot:
springBoot是spring公司生产的一个后端全栈开发框架
springBoot作用:
开箱即用,提倡零配置文件.springBoot将各个框架整合好,形成启动器,所以在
maven的pom文件中加入启动器的依赖坐标就会一次性引入好多需要的jar包,比较方便
也防止了jar包之间的冲突问题,不需要框架整合,直接写代码.结月人力成本!
springBoot使用:
1.所有springboot项目必须都是jar包类型的项目
2.所有的springboot项目必须依赖于spring官方的parent项目,也就是所有springboot项目都是spring官方的parent项目的子项目
3.springboot项目的启动入口运行这个main方法,那么就会调用底层的tomcat插件.
*运行tomcat,本项目就可以启动
*项目写好后 需要上线的时候将项目达成jar包,在线上使用java - jar xxxxx.jar命令运行这个jar包就可以
配置文件:application.properties 名字不能错 里面可以配置端口 -->内部都是key value 键值对
server.port=8081 ->改变端口号为8081 默认为8080
server.port=8081
image.server.url=http://192.168.200.128/
spring.activemq.broker-url=tcp://192.168.200.128:61616
image.server.url=http://www.baidu.com 通过key获取value :
package cn.itcast.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/test") public class testController { @Value("${image.server.url}") private String url; @Autowired private Environment environment; @RequestMapping("/getName") public String getName() { String url1 = environment.getProperty("image.server.url"); return "zhangsan"+url+"--"+url1; } }
Spring Boot与ActiveMQ整合
在pom.xml中引入ActiveMQ起步依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
(2)创建消息生产者
/** * 消息生产者 * @author Administrator */ @RestController public class QueueController { @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @RequestMapping("/send") public void send(String text){ jmsMessagingTemplate.convertAndSend("itcast", text); } }
(3)创建消息消费者
@Component public class Consumer { @JmsListener(destination="itcast") public void readMessage(String text){ System.out.println("接收到消息:"+text); } }
测试:启动服务后,在浏览器执行
http://localhost:8081/send?text=aaaaa
即可看到控制台输出消息提示。Spring Boot内置了ActiveMQ的服务,所以我们不用单独启动也可以执行应用程序。
配置的pom
<?xml version="1.0" encoding="UTF-8"?> <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>cn.itcast</groupId> <artifactId>springbootDemo</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.4.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> </dependencies> </project>
启动
package cn.itcast; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 这个注解表示这个类是springBoot启动类 */ @SpringBootApplication public class Application { /** * springBoot项目的启动入口,运行这个main方法 * 运行tomcat 本项目就可以启动 * 项目写好后 需要上线的时候将项目达成jar包,在线上使用java - jar xxxxx.jar命令运行这个jar包就可以 * @param args */ public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
发送
package cn.itcast.controller;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/mq")
public class TestActiveMq {
/**
*
*/
@Resource
private JmsMessagingTemplate jmsMessagingTemplate;
@RequestMapping("/test1")
public String send1(String text) {
//将数据作为消息发送给消息服务器
jmsMessagingTemplate.convertAndSend("test-queue111", text);
return "success";
}
@RequestMapping("/test2")
public String send2(String text) {
//将数据作为消息发送给消息服务器
Map<String, String> map = new HashMap<String, String>();
map.put("name", "张三");
map.put("phone", "1234653124865");
map.put("content", "张三买了一个新手机");
jmsMessagingTemplate.convertAndSend("test-map",map);
return "success";
}
}
接收
package cn.itcast.listener;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* 测试监听器,监听来自消息服务器发送来的消息
*/
//这个类交个spring管理
@Component
public class TestListener {
@JmsListener(destination = "test-queue111")
public void testListener(String text) {
System.out.println("接收到的消息为" + text);
}
@JmsListener(destination = "test-map")
public void testListener2(Map<String,String> map) {
System.out.println("接收到的消息为" + map);
}
}
2019-05-13