SpringBoot是一個快速開發的框架,可以幫助咱們快速整合第三方框架(主要藉助於 Maven 依賴關係),徹底採用註解化,簡化 XML 配置,內置嵌入 Http 服務器(Tomcat, Jetty),默認嵌入 Tomcat 服務器,最終以 Java 應用程序進行執行。java
SpringBoot 的主要特色爲:web
一、簡化maven,只須要- -兩個依賴就能夠實現Spring+ SpringMVC框架spring
二、自動配置Spring,快速構建項目,省去配置文件數據庫
三、零配置,註解化,約定大於配置,簡化XML操做數組
四、對主流開發框架的無配置集成服務器
SpringBoot環境要求:
一、jdk要求1.8以上
二、使用Maven進行開發app
SpringBoot基礎開發流程:框架
一、建立Maven項目maven
第一步新建一個Maven項目 New—>Maven Project函數
Next下一步
建立好的項目結構
二、引入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控制器 ,建立控制器輸出內容到頁面效果展現
第五步運行項目 兩種方法運行項目
一、右鍵Run As> Spring Boot App
二、在Boot Dashboard儀表板上 以下圖
注意:一、默認端口號8080 二、默認訪問地址沒有項目名
運行結果以下
第六步打成jar包發佈項目
一、在 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配置文件
一、Spring Boot框架遵循約定大於配置。
二、SpringBoot配置文件
配置文件的兩種文件格式:一、application.properties 二、application.yaml
若是兩個在同一級目錄,默認讀取application.properties
在SpringBoot中默認的主配置文件名
默認配置文件放在resources中
下面是第一種文件格式:application.properties
這樣就新建成功了
下面是第二種文件格式application.yaml
YAML Ain’t Markup Language,YAML 是一種簡潔的非標記語言。YAML 以數據爲中心,使用空白,縮進,分行組織數據,從而使得表示更加簡潔易讀。
YAML 有如下基本規則:
大小寫敏感
使用縮進表示層級關係
必定要有層次結構
配置文件的路徑及優先級
配置文件在項目中有四個能夠放的地址
一、根目錄下(二當家)
二、項目根目錄中config下(大當家)
三、項目的resources目錄下(四當家)
四、項目的resources中的config目錄下(三當家)
在四個配置文件存儲位置,讀取會有優先級是2>1>4>3
結構以下:
下面來測試一下
首先根目錄下
而後項目根目錄中config下
其次項目的resources目錄下
最後項目的resources中的config目錄下
測試結果:仍是先執行根目錄下的
若是報了這個錯就說明端口號沒佔用了
3、 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就是配置文件名中間的名稱
4、自定義屬性
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中
一、導入依賴
@ConfigurationProperties和@Value優缺點
1) 能夠從配置文件中批量注入屬性;
2) 支持獲取複雜的數據類型;
3) 對屬性名匹配的要求較低,好比 user-name,user_name,userName,USER_NAME 均可以取值;
@Value 註解的優缺點正好相反,它只能一個個配置注入值;不支持數組、集合等複雜的數據類型;不支持數據校驗;對屬性名匹配有嚴格的要求。最大的特色是支持 SpEL 表達式,使其擁有更豐富的功能。