Spring Boot
SpringBoot是由Pivotal團隊在2013年開始研發、2014年4月發佈第一個版本的全新開源的輕量級框架。它基於Spring4.0設計,不僅繼承了Spring框架原有的優秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發過程。另外SpringBoot通過集成大量的框架使得依賴包的版本衝突,以及引用的不穩定性等問題得到了很好的解決。
優點:
(1)可以創建獨立的Spring應用程序,並且基於其Maven或Gradle插件,可以創建可執行的JARs和WARs;
(2)內嵌Tomcat或Jetty等Servlet容器;
(3)提供自動配置的“starter”項目對象模型(POMS)以簡化Maven配置;
(4)儘可能自動配置Spring容器;
(5)提供準備好的特性,如指標、健康檢查和外部化配置;
(6)絕對沒有代碼生成,不需要XML配置。
創建一個SpringBoot示例
環境:
1.Jdk1.8版本
2.maven 3.3以上版本
Maven設置:
給maven 的settings.xml配置文件的profiles標籤添加:(設置使用的jdk版本)
開發工具中的maven設置為自己配置的maven
創建一個maven工程:
(1)導入spring boot相關的依賴
(2)編寫一個主程序;啟動Spring Boot應用
(3)編寫一個Controller
(4)運行主程序Main方法測試
(5)訪問 localhost:8080/hello
至此springboot配置完成,不需要任何的xml配置,不要安裝tomcat,直接運行,即可訪問。
簡化部署
(1)添加maven插件
(2) 使用mvn package進行打包
(3) 進入打包好的jar包所在目錄
(4) 使用 java -jar jar包名稱 運行
探究
1、父項目
Spring Boot的版本仲裁中心;
以後我們導入依賴默認是不需要寫版本;(沒有在dependencies裡面管理的依賴自然需要聲明版本號)
2、啟動器
spring-boot-starter-web:
spring-boot-starter:spring-boot場景啟動器;幫我們導入了web模塊正常運行所依賴的組件;
Spring Boot將所有的功能場景都抽取出來,做成一個個的starters(啟動器),只需要在項目裡面引入這些starter
相關場景的所有依賴都會導入進來。要用什麼功能就導入什麼場景的啟動器。
3.主程序類,主入口類
@SpringBootApplication: Spring Boot應用標註在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就應該運行這個類的main方法來啟動SpringBoot應用;
@SpringBootConfifiguration:Spring Boot的配置類;
標註在某個類上,表示這是一個Spring Boot的配置類;
@Confifiguration:配置類上來標註這個註解;
配置類 ----- 配置文件;配置類也是容器中的一個組件;@Component
@EnableAutoConfifiguration:開啟自動配置功能;
以前我們需要配置的東西,Spring Boot幫我們自動配置;@EnableAutoConfifiguration告訴SpringBoot開啟自
動配置功能;這樣自動配置才能生效;
@AutoConfifigurationPackage:自動配置包
@Import(AutoConfifigurationPackages.Registrar.class):
Spring的底層註解@Import,給容器中導入一個組件;導入的組件由
AutoConfifigurationPackages.Registrar.class;
將主配置類(@SpringBootApplication標註的類)的所在包及下面所有子包裡面的所有組件掃描到Spring容器;
@Import(EnableAutoConfifigurationImportSelector.class);
給容器中導入組件?
EnableAutoConfifigurationImportSelector:導入哪些組件的選擇器;
將所有需要導入的組件以全類名的方式返回;這些組件就會被添加到容器中;
會給容器中導入非常多的自動配置類(xxxAutoConfifiguration);就是給容器中導入這個場景需要的所有組件,
並配置好這些組件;
有了自動配置類,免去了我們手動編寫配置注入功能組件等的工作;
SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);
Spring Boot在啟動的時候從類路徑下的META-INF/spring.factories中獲取EnableAutoConfiguration指定的值,將這些值作為自動配置類導入到容器中,自動配置類就生效,幫我們進行自動配置工作;以前我們需要自己配置的東西,自動配置類都幫我們;
J2EE的整體整合解決方案和自動配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar;
快速創建Spring Boot項目
1、IDEA:使用 Spring Initializer快速創建項目
IDE都支持使用Spring的項目創建嚮導快速創建一個Spring Boot項目;
選擇我們需要的模塊;嚮導會聯網創建Spring Boot項目;
默認生成的Spring Boot項目;
主程序已經生成好了,我們只需要我們自己的邏輯
resources文件夾中目錄結構
static:保存所有的靜態資源; js css images;
templates:保存所有的模板頁面;(Spring Boot默認jar包使用嵌入式的Tomcat,默認不支持JSP頁
面);可以使用模板引擎(freemarker、thymeleaf);
application.properties:Spring Boot應用的配置文件;可以修改一些默認設置;
2、STS使用 Spring Starter Project快速創建項目
配置文件
SpringBoot使用一個全局的配置文件,配置文件名是固定的;
application.properties
application.yml
配置文件的作用:修改SpringBoot自動配置的默認值;SpringBoot在底層都給我們自動配置好;
YAML(YAML Ain't Markup Language)標記語言
以前的配置文件;大多都使用的是 xxxx.xml文件;
YAML:以數據為中心,比json、xml等更適合做配置文件;
YAML:配置例子
XML:
YAML語法
1、基本語法
k:(空格)v:表示一對鍵值對(空格必須有);
以空格的縮進來控制層級關係;只要是左對齊的一列數據,都是同一個層級的
屬性和值也是大小寫敏感;
2、值的寫法
字面量:普通的值(數字,字符串,布爾)
k: v:字面直接來寫;
字符串默認不用加上單引號或者雙引號;
"":雙引號;不會轉義字符串裡面的特殊字符;特殊字符會作為本身想表示的意思
name: "zhangsan \\n lisi":輸出;zhangsan 換行 lisi
'':單引號;會轉義特殊字符,特殊字符最終只是一個普通的字符串數據
name: ‘zhangsan \\n lisi’:輸出;zhangsan \\n lisi
對象、Map(屬性和值)(鍵值對):
k: v:在下一行來寫對象的屬性和值的關係;注意縮進
對象還是k: v的方式
數組(List、Set):
用- 值表示數組中的一個元素
行內寫法:
pets: [cat,dog,pig]
第一篇介紹到這,後續將繼續講解springboot其他部分。
閱讀更多 代碼接盤俠 的文章