SpringBoot是一個快速開發的框架,能夠幫助我們快速整合第三方框架(主要借助於 Maven 依賴關系),完全采用注解化,簡化 XML 配置,內置嵌入 Http 服務器(Tomcat, Jetty),默認嵌入 Tomcat 服務器,最終以 Java 應用程序進行執行。
SpringBoot 的主要特點為:
1、簡化maven,只需要- -兩個依賴就可以實現Spring+ SpringMVC框架
2、自動配置Spring,快速構建項目,省去配置文件
3、零配置,注解化,約定大於配置,簡化XML操作
4、對主流開發框架的無配置集成
SpringBoot環境要求:
1、jdk要求1.8以上
2、使用Maven進行開發
SpringBoot基礎開發流程:
1、創建Maven項目
第一步新建一個Maven項目 New—>Maven Project

Next下一步

創建好的項目結構

2、引入SpringBoot的pom依賴
父模塊依賴: spring- boot- starter-parent
啟動依賴: spring- boot-starter-web
測試依賴: spring- boot-starter-test
熱部署依賴: spring-boot- devtools
<!-- Spring Boot 啟動父依賴 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath />
</parent>
<!-- 項目設置:編碼格式UTF-8 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--單元測試依賴 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Spring Boot SpringMVC框架依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot 測試依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 熱部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<!-- optional=true,依賴不會傳遞,該項目依賴devtools;之后依賴myboot項目的項目如果想要使用 devtools,需要重新引入 -->
<scope>true</scope><!-- 熱部署 -->
</dependency>
</dependencies>
粘貼到如下位置

第三步創建SpringBoot入口函數
在項目的src/main/java目錄下的com.ysd.demo.demo包中隨意創建一個帶main()方法的類(如類名為:App類),在類的上面添加注解 @SpringBootApplication, 並在 main()的方法體中添加SpringApplication.run(類名.class,args)。此時該類為 SpringBoot 的入口函數即主模塊,內容如下:

新建一個class Ctrl+N 建一個class Finish完成

入口函數標記注解:@SpringBootApplication

第四步創建Controller控制器 ,創建控制器輸出內容到頁面效果展示

第五步運行項目 兩種方法運行項目
1、右鍵Run As> Spring Boot App
2、在Boot Dashboard儀表板上 如下圖

注意:1、默認端口號8080 2、默認訪問地址沒有項目名
運行結果如下


第六步打成jar包發布項目
1、在 pom.xml 文件中添加一個 SpringBoot 插件依賴
<build> <plugins> <!-- SpringBoot插件 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <!-- SpringBoot項目打包jar名稱 --> <finalName>demo</finalName> </build>

注意:在打包之前需要先確定項目的java環境是jdk而非jre
點擊項目右鍵Build Path


打包命令clean package
右鍵項目--run as --maven build--golas輸入 clean package


把jar包放在其中一個盤里(例如我在E盤的test文件夾中)

cmd運行jar包
java -jar jar包名(demo.jar)
Ctrl+c 關閉命令

cmd修改端口號 :java -jar demo.jar --server.port=4399

二. SpringBoot配置文件
1、Spring Boot框架遵循約定大於配置。
2、SpringBoot配置文件
配置文件的兩種文件格式:1、application.properties 2、application.yaml
如果兩個在同一級目錄,默認讀取application.properties
在SpringBoot中默認的主配置文件名
默認配置文件放在resources中
下面是第一種文件格式:application.properties


這樣就新建成功了



下面是第二種文件格式application.yaml
YAML Ain’t Markup Language,YAML 是一種簡潔的非標記語言。YAML 以數據為中心,使用空白,縮進,分行組織數據,從而使得表示更加簡潔易讀。
YAML 有以下基本規則:
大小寫敏感
使用縮進表示層級關系
一定要有層次結構


配置文件的路徑及優先級
配置文件在項目中有四個可以放的地址
1、根目錄下(二當家)
2、項目根目錄中config下(大當家)
3、項目的resources目錄下(四當家)
4、項目的resources中的config目錄下(三當家)
在四個配置文件存儲位置,讀取會有優先級是2>1>4>3
結構如下:

下面來測試一下
首先根目錄下

然后項目根目錄中config下

其次項目的resources目錄下

最后項目的resources中的config目錄下

測試結果:還是先執行根目錄下的


如果報了這個錯就說明端口號沒占用了

三、 SpringBoot多環境配置
在項目的整個研發過程中,同一個項目會面臨着不同的使用環境。使用環境不同,需要的配置信息也會不同。例如,數據庫配置,在開發的時候,我們一般用測試數據庫,而在生產環境的時候,我們是用正式的數據庫。如果在項目中只有 application.properties(application.yml)一個配置文件的話,該文件中的屬性值會經常需要改動,就會使項目整體的體驗變得非常差,而且出錯率也極高。這時候,我們可以用 profile 在不同的環境下配置不同的配置文件。這樣一來,在 SpringBoot 項目中就出現了多環境的配置文件。
根據不同的環境定義不同的配置環境--對應配置文件
SpringBoot環境配置公式:application-{profile} .properties
{profile} :dev或者test或者prod 也可以自定義
開發環境(模式) dev application-dev . properties
測試環境(模式) test application-test. Properties
生產環境(模式) prod application-prod. Properties
使用spring.profiles.active=dev(環境) 切換環境
下面如何創建:
src/main/resources右鍵新建一個file
結構如下:


spring.profiles.active=(環境)dev #dev就是配置文件名中間的名稱


四、自定義屬性
SpringBoot 可以在配置文件中修改默認約定的屬性值,還可以添加一些自己需要的屬性,也就是可以自定義一些屬性。這些自定義的屬性可以使用@Value 注解將屬性值注入到 beans 中,或使用@ConfigurationProperties注解將屬性值綁定到結構化的 beans 中 。
自定義的屬性可以放到 application.properties(或 application.yml)全局配置文件中,也可以在自定義的其他配置文件中定義
下面自定義一個一個學生信息 使用的也是propertis和yanl文件使用propertis
右鍵--new file --stu.properties --右鍵編碼格式

如何讀取自定義屬性值到實體類
兩種方式:
使用@Value注解將屬性值單獨注入指定到beans中 單個
使用@ConfigurationProperties注解將屬性值綁定到特定結構化的beans中 批量
第一種 使用@Value注解將屬性值單獨注入指定到beans中
新建一個class類



1、要注入自定義屬性先@Component
@Component :將實體類交給Spring進行管理 進行bean化,才能進行注入自定義屬性值
2、綁定自定義配置文件 指定配置文件的地址
3、使用@value("${屬性名|鍵}") ${屬性名|鍵}--spel表達式


使用@ConfigurationProperties注解將屬性值綁定到特定結構化的beans中
1、導入依賴



@ConfigurationProperties和@Value優缺點
1) 可以從配置文件中批量注入屬性;
2) 支持獲取復雜的數據類型;
3) 對屬性名匹配的要求較低,比如 user-name,user_name,userName,USER_NAME 都可以取值;
@Value 注解的優缺點正好相反,它只能一個個配置注入值;不支持數組、集合等復雜的數據類型;不支持數據校驗;對屬性名匹配有嚴格的要求。最大的特點是支持 SpEL 表達式,使其擁有更豐富的功能。
