SpringBoot介绍
官网:https://spring.io/projects/spring-boot
官方文档:https://docs.spring.io/spring-boot/docs/2.3.2.RELEASE/reference/html/index.html
SpringBoot是2014年基于Spring4.0发布的全新开源的轻量级框架。它不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
特点:
- 可以创建独立的Spring应用程序,基于其Maven或Gradle插件,可以创建可执行的jar和war;
- 内嵌Tomcat或Jetty等Servlet容器;
- 提供自动配置的“starter”依赖项简化了创建项目的配置;
- 尽可能自动配置Spring容器;
- 提供准备好的特性,如指标、健康检查和外部化配置;
- 绝对没有代码生成,不需要XML配置。
微服务
2014年,Matrin Fowler 在论文《Microservices》中提出了微服务的概念。
简而言之,微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是 HTTP API。这些服务围绕业务能力来构建,并通过完全自动化部署机制来独立部署。这些服务使用不同的编程语言书写,以及不同数据存储技术,并保持最低限度的集中式管理。
原文:https://martinfowler.com/microservices/
环境准备
开发环境:
- SpringBoot 2.3.2RELEASE
- JDK 1.8+
- Maven 3.3+
IDE:idea2020.1
HelloWorld
目标:浏览器发送hello请求,服务器接收并处理请求,响应“Hello World!”。
创建Maven工程
添加SpringBoot依赖
pom.xml
<?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>com.chan.springboot</groupId>
<artifactId>springboot-01-helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
编写主程序
package com.demo.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* HelloWorldApplication
*
* @author Chan
* @since 2020/7/29
*/
@SpringBootApplication
public class HelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
}
编写controller
package com.demo.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* HelloController
*
* @author Chan
* @since 2020/7/29
*/
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello() {
return "Hello World!";
}
}
测试运行
见到如上日志,启动成功,项目在8080端口运行
浏览器输入http://localhost:8080/hello
创建jar包
pom.xml中添加spring-boot-maven-plugin插件。
<!-- pom.xml中添加spring-boot-maven-plugin插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
使用maven的package命令可以生成“springboot-01-helloworld-1.0-SNAPSHOT.jar”文件。
运行jar包。
JAVA -jar springboot-01-helloworld-1.0-SNAPSHOT.jar