前言
1、SpringBoot 快速入门
1.1、SpringBoot 简介
- SpringBoot 是用来简化 Spring 应用的初始搭建以及开发过程
首先我们回顾一下 SpringMVC 项目的开发过程:
- 导入依赖(javax.servlet-api 和 spring-webmvc)
- Servlet 容器配置类(在这里设置 SpringMVC 来处理所有请求)
- SpringMVC 容器配置类
- 创建 Controller 类
1.2、SpringBoot 项目创建的两种方式
1.2.1、手动创建
这里我们不再是创建 Maven 工程了,而是创建一个 Spring Initialzr 项目:
然后选择 SpringBoot 版本并勾选 SpringbWeb:
创建好工程后,我们只需要保留 src 目录和 pom.xml,别的文件都可以删了。
SpringBoot 程序并不需要像开发 SpringMVC 程序那样一上来先创建 ServletConfig、SpringMvcConfig 这些配置类,我们只需要写一个 Controller 类:
@RestController @RequestMapping("/books") public class BookController { @GetMapping("/{id}") public String getById(@PathVariable Integer id){ System.out.println("id => " + id); return "hello springboot"; } }
接着写一个执行类:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
不用配置 Tomcat 直接执行,然后访问 local:8080/books/1
查看控制台输出:
恐怖如斯!!!我们啥都没干,就写了一个 Controller 类!!!
1.2.2、Spring 官网创建
打开 start.spring.io
下载项目之后,我们查看 pom.xml:
可以看到,和我们在 Idea 创建的项目 pom.xml 中的核心依赖是一样的,只不过这里的 SpringBoot 版本最低就是 3.2.4 ,JDK 版本必须 JDK17+。
1.3、SpringBoot 快速启动
SpringBoot 程序可以不依赖 Tomcat 和 Idea 直接运行,但是数据库必须得有。所以前后端开发 Web 程序的过程中,后端程序员只需要给前端程序媛一个 jar 包和数据库建表语句即可。
打包 SpringBoot 项目:
重点是要有这个打包插件:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <configuration> <addResources>true</addResources> <mainClass>com.lyh.Application</mainClass> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
在 idea 用 package 打包程序,在 jar 包目录输入 cmd 使用 java -jar 命令执行并在浏览器访问 localhost:8080/books/1 :
这样我们的项目就可以摆脱对 Idea 和 Tomcat 的依赖随处运行了。
1.4、起步依赖
为什么 SpringBoot 可以帮我自动处理好依赖之间的关系,而使得我们几乎不需要自己导入任何依赖呢,这其实主要归功于它帮我把所有的依赖都导进来了:
SpringBoot 的三个核心依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
我们可以打开查看一下:
可以看到,光是一个 spring-boot-dependencies 中帮我们管理了接近两百个依赖,而下面的 spring-boot-starter-web 和 spring-boot-starter-test 同样帮我们导入了 tomcat、servlet、springmvc 等依赖。
所以 SpringBoot 的起步依赖通过帮我们来管理依赖,已达到减少依赖冲突的目的。
1.5、切换 Web 服务器
上面我们打包的 SpringBoot 程序会内置一个 tomcat,所以我们可以在别的地方运行,这是因为 spring-boot-starter-web 帮我们导入了 tomcat 的依赖,但是如果我们不希望使用 tomcat 又该怎么办?tomcat 是内置的依赖,我们怎么排除掉?
<!-- 排除tomcat依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 导入jetty依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> <version>2.5.0</version> </dependency>
启动项目:
所以,之后当遇到版本依赖需要替换依赖的情况我们都可以这么干!相比较 Tomcat,Jetty 更加轻量级,可扩展性更强。
SpringBoot(一)【入门】(2)https://developer.aliyun.com/article/1534227