1.Spring Boot介绍
在学习SpringBoot之前, 我们先来认识⼀下Spring ,我们看下Spring官⽅的介绍
可以看到,Spring让Java程序更加快速, 简单和安全。 Spring对于速度、简单性和⽣产⼒的关注使其成为世界上最流⾏的Java框架。
Spring官⽅提供了很多开源的项⽬, 覆盖范围从Web开发到⼤数据, Spring发展到了今天, 已经形成了⾃⼰的⽣态圈. 我们在开发时, 也倾向于使⽤Spring官⽅提供的技术, 来解决对应的问题。
这些项⽬都是基于Spring Framework来进⾏开发的, 但是Spring Framework存在配置多, ⼊⻔难的问题, Spring 也意识到了这个问题, 为了简化开发者的使⽤, 从⽽创造性的推出了SpringBoot。
接下来我们看下什么是Spring Boot。
Spring Boot 的诞⽣是为了简化 Spring 程序开发的。
Spring Boot 翻译⼀下就是 Spring 脚⼿架,什么是脚⼿架呢?如下图所⽰
盖房⼦的这个架⼦就是脚⼿架,脚⼿架的作⽤是砌筑砖墙,浇筑混凝⼟、⽅便墙⾯抹灰,装饰和粉刷的,简单来说,就是使⽤脚⼿架可以更快速的盖房⼦。
⽽ Spring Boot 就是 Spring 框架的脚⼿架,它是为了快速开发 Spring 框架⽽诞⽣的.
每次技术的诞⽣和改进相⽐于之前的效率会有⼀个质的提升,⽽ Spring Boot 相⽐于 Spring 也是如此.
2.SpringBoot项目创建
2.1使⽤ Idea 创建
因为⽤的 Idea 社区版(其他版本也同样适⽤),所以先要安装 Spring Boot Helper插件才能创建 Spring Boot 项⽬.
社区版要求:2021.1 -2022.1.4
安装Spring Boot Help插件
使⽤专业版Idea的同学不需要安装插件, Idea已经集成了
-
查找插件并下载
点击 , 进⼊⽹⻚下载插件此处不要直接点击 Install 直接点击Install, 安装的是收费版(⼟豪请随意)
插件地址: 点击跳转
插件对Idea版本有要求, Idea版本需要在2021.1 -2022.1.4范围内, 不在这个范围内需要重新卸载安装, 卸载要删除注册表的内容
-
安装插件
按下图序号操作, 逐步安装插件
选择刚才下载的插件, 安装, 重启Idea即可 此时查看已安装插件
安装好之后,它的名字就变成了 Spring Initializr and Assistant,如下图所⽰∶
不要点击 update!!!
创建SpringBoot项⽬
接下来我们来创建 Spring Boot 项⽬:
File -> New ->Project
上图说明
① SpringBoot版本 , 选择任意3.X的, 这个版本会随着SpringBoot的升级⽽发⽣变化, 不固定
3.X版本使⽤的是jdk17, 3.X以下使⽤的是JDK8
② 打勾表⽰创建项⽬之初, 就引⼊的第三⽅依赖(框架, 插件, 组件等 后⾯再细讲)
点击 Create 就完成 Spring Boot 的项⽬创建了。
注意事项
第⼀次打开 Spring Boot 项⽬需要加载很久,因为当前 Spring Boot 框架并没有在⾃⼰的本地仓库. 为了加速 Spring Boot 项⽬的下载,在打开项⽬之前,请先确认⾃⼰的 Maven 已经配置为国内源
2.2⽹⻚版创建(了解)
不使⽤ Idea 也可以创建 Spring Boot 项⽬,我们可以使⽤ Spring 官⽅提供的⽹⻚版来创建 Spring Boot 项⽬。
⽹⻚版创建项⽬先访问,如下图所⽰:
Idea创建项⽬时, 显⽰的界⾯, 就是来⾃于这个⽹站, 所以⽹络不好的情况下, 这个界⾯也会打不开
点击⽣成按钮会下载⼀个 Spring Boot 的 zip 包,解压 zip 之后⽬录如下:
然后再使⽤ Idea 打开之后,Spring Boot 项⽬就算创建成功了.
2.3项⽬代码
观察pom.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>Test</artifactId><version>0.0.1-SNAPSHOT</version><name>Test</name><description>Test</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version></properties><dependencies><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></dependencies><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><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>org.example.test.TestApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
pom.xml
⽂件⾥的具体信息, 不需要过度关注, 我们主要看<dependencies></dependencies>
标签⾥⾯的内容
pom⽂件中, 引⼊了两个依赖:
- spring-boot-starter-web:包含了web应⽤开发所需要的常⻅依赖
- spring-boot-starter-test:包含了单元测试所需要的常⻅依赖
⽗⼯程
但是我们发现, 这个依赖没有指定具体的版本号, 但我们的jar包也正常引⼊到项⽬中了.并且查看的话, 是有版本号的.
我们来看看本地仓库的的jar包是否下载下来了呢?
也下载下来了.
为什么没有指定 , 程序也可以正常运⾏呢?
因为每⼀个SpringBoot⼯程,都有⼀个⽗⼯程。 依赖的版本号在⽗⼯程中统⼀管理.
⽗⼯程指定版本号后, 就会⾃动引⼊和所指定版本对应的依赖, 创建的SpringBoot项⽬, 会继承 SpringBoot⽗⼯程.
如下:
2.4 ⽬录介绍
Spring Boot 项⽬有两个主要的⽬录:
- src/main/java: Java 源代码
- src/main/resources: 为静态资源或配置⽂件:
子目录:
- /static:静态资源⽂件夹, ⽐如前期学的js, css, html等静态⽂件, 不需要服务器数据进⾏绑定的⻚⾯
- /templates:模版资源⽂件夹, 主要存放动态模板⽂件, ⽐如JSP, Freemarker, Thymeleaf等需要服务器动态渲染数据的⽂件
- src/test/java: 测试代码源代码
- pom.xml: maven 配置⽂件
2.5 运⾏项⽬
SpringBoot 内置了Tomcat服务器, ⽆需配置即可直接运⾏
Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080
先运行src/main/java/.../项目名Application
打开浏览器,在浏览器中输入localhost:8080
然后点击搜索,出现下面的页面:
3.Web服务器
浏览器和服务器两端进⾏数据交互, 使⽤的就是HTTP协议
HTTP 协议就是 HTTP 客⼾端和 HTTP 服务器之间的交互数据的格式.
Web 服务器就是对HTTP协议进⾏封装, 程序员不需要直接对协议进⾏操作(⾃⼰写代码去解析http协议规则),让Web开发更加便捷, 所以Web服务器也被称为WWW服务器, HTTP服务器, 主要功能是提供⽹上信息浏览服务.
常⻅的Web服务器有: Apache,Nginx, IIS, Tomcat, Jboss等 SpringBoot 内置了Tomcat服务器, ⽆需配置即可直接运⾏
Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080
4.总结
- Spring Boot 是为了快速开发 Spring ⽽诞⽣的, Spring Boot 具备:
- Spring Boot 提供了启动添加依赖的功能, 可以快速集成框架.
- 内置web服务器,⽆需配置 Tomcat 等 Web服务器,直接运⾏和部署程序.
- 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发.
- ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点.