1、理论概述
1.1、什么是Spring Boot?
Spring Boot 是基于 Spring 设计的一个全新的框架,其目的是用来简化 Spring 的应用、初始搭建、开发的整个过程(如果说 Spring 是手动档汽车,那么 Spring Boot 就是自动挡汽车)。Spring Boot就是一个整合了很多可插拔组件的框架,内嵌工具(例如Tomcat、Jetty等),方便开发人员快速搭建和开发的一个框架。
1.2、Spring Boot的特点
- Spring Boot 提供了启动添加依赖的功能,可以快速搭建框架。
- 内置容器,省去了配置Tomcat等Web容器的繁琐,可以直接运行和部署。
- Spring Boot的核心理念:约定大于配置,约定了某种规范,可以不用配置,直接进行开发,例如模型和表名一致就可以不用配置...
- 完全摒弃繁琐的XML,使用注解和配置进行开发
- ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。
1.3、开发环境
Spring Boot 2.7.8
JDK 1.8
IDE:IntelliJ IDEA 2021.3.2
注意:Spring Boot 2.x 要求Java8及以上版本,不再支持Java6、Java7.
2、实战——创建和配置项目
2.1、Spring Boot项目创建的两种方式
2.1.1、方法一:通过网站构建项目
a)访问网址
b)对你的项目进行配置,如下图:
最后点击Generate Project按钮生成项目。
c)解压刚刚下载好的文件,点击IDEA File => New => Project from Existing Sources… => 选择你解压项目文件夹目录 => 点击Ok => 选择Import project from external model => 选中Maven => 一路点击Next直到项目导入成功。
2.1.2、使用Spring Initializr创建(推荐)
a)如果你是使用的IDEA社区版,需要安装以下插件(不是社区版可以跳过此步骤)
所需插件:Spring Boot Helper(如下图)
注意:此插件在IDEA社区版2022.1.x之前都免费,IDEA社区版2022.2.x之后开始收费,所以IDEA社区版版本的选择,大家自行选择。
这个插件就是用来构建 Spring Boot 框架的,之后,你在创建一个项目的时候可以看到这样一个选项(就是通过来创建Spring Boot框架),如下图:
b)接下来就是创建Spring-Boot项目的步骤:
最后一路Next即可,最终目录结构如下:
如果你得到了上图这个目录结构,说明你的项目已经创建好了,但是还没有初始化,因此还需要以下步骤:
然后点击OK,接着就是一个,漫长的等待过程,当你的项目出现了下图变化,才说明你的Spring-Boot项目已经创建并初始化完成:
2.2、Spring Boot目录介绍
3、项目运行
3.1.实现页面交互打印功能(简单的Hello World)
在demo目录下创建一个类(名字自己随便起,这里是为了演示)如下图:
代码如下:
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller //当前类为控制器
@ResponseBody //返回的是数据,而非页面
//@RestController 是以上两种两个注解合并
public class TestController {
@RequestMapping("/hi") // url 路由注册
public String sayHi(String name) {
//判空处理
if(!StringUtils.hasLength(name)) {
name = "张三";
}
return "你好:" + name;
}
}
3.1.1、功能解释
1.我们需要给类TestController设置@RestController注解,@RestController是@Controller和@ResponseBody的集合(@controller表示当前类的控制器,@ResponseBody表示返回的是数据,而非页面) 如果只是使用@RestController注解,无法返回jsp和html,这里只是为了便于演示;
2.标识访问方法注解@RequestMapping,这样我们才能访问到对应的方法,上述代码中映射的方法就是sayHi方法。
3.StringUtils.hasLength是一个判空处理,检查当前name的值是否为null或者空字符串。
3.1.2、运行Spring Boot
先找到Spring Boot启动类(@SpringBootApplication注解下的类),运行启动类中的main方法即可。
3.1.3、执行效果
a)如果程序出现下图,标识Spring-Boot项目已经运行起来了,并且如果程序保持没有停止,说明程序正常运行~
b)从打印的日志信息中可以看出,默认端口号是8080,如下:
c)接着,打开你的浏览器,输入127.0.0.1:8080/hi 或者 localhost:8080/hi 访问你的sayHi方法:
你也可以输入一段 query string 表示name,例如 localhost:8080/hi?name="世界",如下:
3.2、注意事项
3.2.1、约定大于配置
Spring Boot 项⽬有一个最大的特点:约定⼤于配置。
就是说我们创建的包或类需要写在启动类所在包目录或者子目录下(默认是这样,但也可以自己配置),否则否则无法将对象注入到容器中!
类似于Spring项目中的扫描Bean的路径一样,如下图:
3.2.2、错误演示
如果将我们写的类移动到其他包下(不在启动类的目录或者子目录下),例如下图:
重新启动项⽬,访问 localhost:8080/hi就会出现如下错误:
404表示你输入的路径错误,实际上是因为你写 TestController 类,没有注入到容器当中。
4.总结
1.几个重要的面试问题
- 什么是Spring Boot?
- 为什么要使用Spring Boot?(对比Spring的优点是什么?)
2.Spring Boot的开发工具和版本
3.Spring Boot项目的创建和使用