一.什么是Spring Boot?
- Spring Boot是基于Spring框架开发的全新框架,是Spring家族的一个子项目,其设计目的是简化Spring配置,从而可以轻松构建独立运行的程序并极大的提高开发效率。
- Spring Boot整合了许多框架和第三方库配置。几乎可以达到“开箱即用”。
二.Spring Boot的优点:
- 可快速构建独立的Spring应用
- 直接嵌入Tomcat/Jetty/Undertow服务器(无需部署WAR文件)
- 提供依赖启动器简化构建配置
- 极大程度的自动化配置Spring和第三方库
- 提供生产就绪功能
- 极少的代码生成和XML配置
三.关于Spring:
①Spring的发展足迹:XML配置(Spring 1.x) → 注解配置(Spring 2.x+JDK 1.5) → Java配置(Spring 4.x+Spring Boot)
②Spring技术的演化:Spring Framework(XML配置为主→注解为主) → Spring Boot(手工编程→自动化配置) → Spring Cloud(单体应用→分布式微服务系统)
③ Spring Boot和Spring Cloud特点:
- 核心理念:约定大于配置
- 开箱即用,简单,快速,生产就绪型功能
- 内嵌tomcat,简化Maven
- 与生态圈的深度整合
- 注重运维,天然支持自我控制
- Cloud Native的大方向
- 最佳实践不嫌多,固化到系统实现中才是王道
④ Spring Framework的主要特性/核心特性:
- 使用POJO进行轻量级和最小侵入式开发
- 通过依赖注入和基于接口编程实现松耦合
- 通过AOP和默认约定进行声明式编程,减少模式化的固定而反复的代码
- Spring是开发的,能很方便的整合其他开发框架
- 核心特性:依赖注入DI和面向切面编程AOP
PS:
- POJO(Plain Old Java Object,普通Java对象)
- AOP(Aspect-Oriented Programming):面向切面编程,有助于将遍布应用各处的功能分离出来形成可重用的组件
四.创建Spring Boot项目:
方法一:使用Maven创建。
1.创建Maven项目
2.在pom.xml中添加Spring Boot相关依赖
3.编写主程序启动类
4.创建一个用于Web访问的Controller
5.运行项目
方法二:使用Spring Initializr创建
1.创建Spring Boot项目
2.创建一个用于Web访问的Controller
3.运行项目
方法三:通过http://start.spring.io网址创建
方法四:使用命令行(Spring Boot CLI)创建
PS:CLI(command line interface)是一种常见的项目创建方式,也被称为“脚手架”,在Web前端项目(比如Angular/Vue/React)中大量应用。
五.单元测试:
1.在pom文件中添加spring-boot-starter-test测试启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2.编写单元测试类,编写单元测试方法
@SpringBootTest //加载项目的ApplicationContext上下文环境
class Demo01ApplicationTests {
@Autowired //注入了HelloController实例对象
private HelloController hellowController;
@Test
void contextLoads() {
String h = hellowController.copy(); //方法调用的测试,不是模拟http请求
System.out.println(h);
}
}
3.运行结果
六.热部署:
1.在pom文件中添加spring-boot-devtools热部署依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
2.IDEA中热部署设置
3.热部署测试
七.Spring Boot自动配置的原理:
- Spring Boot应用的启动入口是@SpringBootApplication注解标注类中的main()方法。
- @SpringBootApplication能够扫描Spring组件并自动配置Spring Boot。
- @SpringBootApplication注解是一个组合注解,包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个核心注解。