1.什么是Spring Boot?为什么要学Spring Boot?
Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发 的。
Spring Boot 翻译⼀下就是 Spring 脚⼿架,什么是脚⼿架呢?如下图所示:
盖房⼦的这个架⼦就是脚⼿架,脚⼿架的作⽤是砌筑砖墙,浇筑混凝⼟、⽅便墙⾯抹灰,装饰和粉刷 的,简单来说,就是使⽤脚⼿架可以更快速的盖房⼦。
⽽ Spring Boot 就是 Spring 框架的脚⼿架,它就是为了快速开发 Spring 框架⽽诞⽣的。
2.Spring Boot 优点
- 快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
- 内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
- 快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
- 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
- ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。
3.Spring Boot 项目创建
3.1 使用 Idea 创建
专业版不需要安装插件,社区版需要安装插件,
接下来我们来创建 Spring Boot 项目:
(我使用的是专业版:idea2023.1.1)
注意事项:
第⼀次打开 Spring Boot 项⽬需要加载很久,因为当前 Spring Boot 框架并没有在⾃⼰的本地仓库。
3.2 网页版创建
不使⽤ Idea 也可以创建 Spring Boot 项⽬,我们可以使⽤ Spring 官⽅提供的⽹⻚版来创建 Spring Boot 项⽬。
点击⽣成按钮会下载⼀个 Spring Boot 的 zip 包,解压 zip 之后⽬录如下:
然后再使⽤ Idea 打开之后,Spring Boot 项⽬就算创建成功了
4.项目目录介绍和运行
新建的 Spring Boot 项⽬⽬录如下:
Spring Boot 项⽬有两个主要的⽬录:
src/main/java 为 Java 源代码。
src/main/resources 为静态资源或配置⽂件: /static:静态资源⽂件夹; /templates:模版资源⽂件夹。
4.1 运行项目
点击启动类的 main ⽅法就可以运⾏ Spring Boot 项⽬了,启动成功如下图所示:
4.2 输出 Hello world
我们学习 JavaEE 就是⽤来实现 Web 项⽬或接⼝的,⽽之前是 Spring 其实是⼀个普通 Java 项⽬,没 办法直接和浏览器进⾏互动,所以接下来我们要⽤ Spring Boot 来实现和浏览器及⽤户的交互。
package com.example.springbootdemo01.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "hello,SpringBoot";
}
}
重新启动项⽬,访问 http://127.0.0.1:8080/hello最终效果如下:
5.注意事项:包路径错误
我们尝试将 controller 移动到其他包下,⽐如以下⼏种⽅式:
运⾏我们的项⽬,发现程序报错了,如下图所示:
这说明 Spring Boot 项⽬没有将对象注⼊到容器中。
5.1 正确路径
当我们把要注⼊到容器类和启动类放到同级⽬录下时,如下图所示:
这时候 Spring Boot 项⽬才能正常的将 bean 注⼊到容器中。
5.2 小结:约定大于配置
以上情况反应了 Spring Boot 项⽬的另⼀个特点:约定⼤于配置。
对⽐ Spring 的项⽬我们也可以看到这⼀特点,⽐如在 Spring 中也是要配置 Bean 的扫描路径的,⽽ Spring Boot 则不需要
总结
Spring Boot 是为了快速开发 Spring ⽽诞⽣的,Spring Boot 具备:
- 快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
- 内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
- 快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
- 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
- ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点。
Spring Boot 可使⽤ Idea 或⽹⻚创建,它的设计思想是约定⼤于配置,类上标注 @SpringBootApplication 就可以启动 Spring Boot 项⽬了。