案例生成
# 案例生成
在先前SSM章节中,我们完成了一个简单的CRUD项目,但开发过程中,光配置就得花不少时间,SpringBoot的出现将大大降低配置时间,让开发人员真正能够开箱即用。
# IDEA流程
新建项目
->Spring Initializr
配置基本的需求依赖项
->Web
->Spring Web
创建完成后,就能直接使用了,但需要注意的是,启动文件必须与controller
、dao
等包同级
![[Pasted image 20220618153442.png]]
# Spring与SpringBoot对比
![[Pasted image 20220618153832.png]]
# 前后端协同
工作环境下,我们往往需要和前端人员进行互动,他们更改网页后需要你后端一起支持才能生效,倘若你把你后端电脑关了,他们也无计可施。于是,SpringBoot想到了打包一个java包,前端只需要启动这个java包就能直接开启服务器,不需要手动配置任何后端知识相关的内容
后端只需要通过maven的package功能,打包完项目后会在target目录下生成一个demo-v1.0.0.jar
文件,将该文件发给前端人员,让他们在本地通过java -jar demo-v1.0.0.jar
即可本地开启项目服务器
# 为什么SpringBoot那么神
前面的案例足以证明SpringBoot相比传统Spring更简洁,但究竟是为什么呢??
这得依赖于pom.xml
下的
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2
3
4
5
6
这个spring-boot-starter-parent
其实也继承自其他的配置。在spring-boot-starter-parent
中其实只是一些常用的基本插件配置,真正封神的配置是他的父配置文件spring-boot-dependencies
,spring-boot-dependencies
包含了几乎所有会用到的web开发依赖,并且作者已经为后来者适配好了最佳的版本,不会再发生之前tomcat10不兼容三件套的情况。这也就解释了为什么我们项目的pom.xml
文件中的依赖,仅包含依赖项不包含其版本的原因了,因为版本作者都给你设定好了~~~
# 切换服务器
SpringBoot已经为这种需求做好了准备,在我们项目pom.xml
文件中,有一个依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2
3
4
该库内主要是关于web相关的各种依赖,其中包含了默认的服务器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>
2
3
4
5
6
7
8
9
10
这样就能排除该依赖了,由于实验需求,我们可以假装需要配置一个jetty服务器,我们可以添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
2
3
4
再次启动入口文件,就会发现,此时服务器已经变成jetty了!十分简单!
Jetty比Tomcat更轻量级,可扩展性更强,谷歌应用引擎GAE已经全面换为Jetty
# 总结
![[Pasted image 20220618160855.png]]