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 表達式,使其擁有更豐富的功能。