了解
使用SpringMVC开发项目的麻烦:
首先导入各种依赖,Spring,SpringMVC等,在编写相应的配置文件.xml文件,然后在编写自己的代码,最终还要将整个项目打包,放到Tomcat服务器上运行。
SpringBoot是整合Spring技术栈的一站式框架,能快速创建出生产级别的Spring应用。
SpringBoot是简化Spring技术栈的快速开发脚手架
优点
- 可以创建独立的Spring应用
- 内嵌web服务器,无需打包成war包,无需再安装Tomcat环境
- 自动starter(启动器)依赖,简化构建配置(自动搭建场景配置,比如web开发,并且管理所有依赖的版本控制,不会出现版本不一致的情况,使得开发人员免于复杂的配置,专心于业务逻辑的实现)
- 自动配置Spring以及第三方功能(连Redis,连MySQL)
- 提供生产级别的监控、健康检查及外部化配置(需要修改某个模块,只需配置一下,无需修改源代码)
- 无代码生成、无需编写XML
Spring5重大升级
SpringBoot2源码是由Java JDK8实现的,JDK8的新特性(接口的默认实现),JDK8之前,如果要实现一个接口,需要实现它里面的全部的方法,但是会有这种情况,比如有一个接口,里面声明了1,2,3,4,5 等5个方法,而A类只需要其中的1,2,方法,B类只需要其中的3,4方法,这时,为了解决这个问题,使用的适配器的功能,即该适配器实现了接口的所有方法,但是都是空方法,A类继承这个适配器,只需重写1,2方法即可,B类继承适配器,只需重写3,4方法即可。JDK8引入接口的默认实现新特性之后,无需再使用适配器,需要哪个方法实现哪个方法即可。
SpringBoot时代背景
微服务
微服务架构,将一个大应用拆分成多个小型服务,每个服务运行在自己进程内,可以独立部署某个服务器上和迭代升级,服务之间使用轻量级HTTP交互,服务的拆分可以根据大型应用的业务功能,可以由全自动部署机制独立部署,去中心化,服务自治的特点,允许每个微服务,可以使用不同的语言开发,也可以使用不同的存储技术。
分布式
由于微服务的出现,各种各样的服务独立部署到不同的服务器上,必然产生分布式的问题。
1. 分布式的困难
- 远程调用
- 服务发现
- 负载均衡
- 服务容错
- 配置管理
- 服务监控
- 链路追踪
- 日志管理
- 任务调度
- ......
2. 分布式的解决
- SpringBoot + SpringCloud
云原生
原生应用如何上云
上云的困难
- 服务自愈
- 弹性伸缩
- 服务隔离
- 自动化部署
- 灰度发布
- 流量治理
入门
HelloWorld
1. 创建Maven工程
2.引入依赖
pom.xml
// 引入SpringBoot启动器
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.6</version>
</parent>
// 引入web开发场景
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3. 创建主程序
MyApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 主程序类
* @SpringBootApplication : 这是一个SpringBoot应用
*/
@SpringBootApplication
public class MyApplication {
public static void main(String[] args){
SpringApplication.run(MyApplication.class, args);
}
}
4.编写业务
Controller/HelloController.java
//@ResponseBody
//@Controller
@RestController
public class HelloController {
@RequestMapping("/hello")
public String handle01(){
return "Hello, Spring Boot 2!";
}
}
5. 测试
直接运行main方法
6. 简化配置
application.properties
server.port=8088
7. 简化部署
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
把项目打成jar包,直接在目标服务器执行即可。
注意点:
- 取消掉cmd的快速编辑模式