SpringBoot介紹-約定大于配置
SpringBoot是在Spring4.0基礎上開發的,不是替代Spring的解決方案,而是和Spring框架結合并進一步簡化Spring搭建和開發過程的。
如何簡化?就是通過提供默認配置等方式讓我們更容易,集成了大量常用的第三方庫配置,所有你想用的常用框架,它都有對應的組件支持
大量的SpringBoot應用只需要非常少量的配置代碼
另外SpringBoot通過繼承大量的框架使得不同依賴包的版本沖突問題得到解決
內嵌了web層的tomcat,數據訪問的SpringData,還有各種中間件,只需要引入進來就可以。
?
只有在pom依賴中加上spring-boot-starter的依賴,才是作為一個springboot的項目
開發web所依賴的所有jar包都加進來了
里面有轉json的工具、tomcat、web服務的組件
1.加注釋
@SpringBootApplication
2.在main方法中加上
SpringApplication.run(Application.class,args);
如何把SpringBoot項目部署到服務器上
通過maven把項目打包成jar包,然后把jar包托到某個文件夾下,通過命令行的方式去啟動
java -jar 打包后jar包的名字
會發現報錯,因為啟動這個jar包后,這個jar會找不到啟動類的入口
需要在pom文件中導入
spring-boot-maven-plugin
啟動類的位置:如果不加@ComponentScan(掃描路徑),最好放在需要的掃描包的根目錄下,這樣才能自動掃描所有的Bean放到spring容器中
springboot項目約定:約定大于配置
前面說SpringBoot通過繼承大量的框架使得不同依賴包的版本沖突問題得到解決
在創建springBoot項目時,會讓我們選擇springboot的版本號(例如springboot 2.4.2)
我們可以在pom文件中加上父依賴
spring-boot-starter-parent
而spring-boot-starter-parent的父maven項目是
spring-boot-dependencies
而spring-boot-dependencies中引入了大量 前面已選擇的springboot 的版本號 對應的 其他依賴的版本號的配置,這樣我們在自己的springBoot項目 就不用加上版本號 ,避免版本沖突的問題
不同
?starter場景啟動器:不同場景的場景啟動器維護了所對應的所有依賴,從而簡化maven文件的書寫
spring-boot-maven-plugin,它是作為bulid來加入插件的,不是dependency依賴
springboot只有加了這個插件,當運行Java -jar xxx.jar包時,才能找到啟動類的入口,項目才能正常部署
描述一下springboot的作用?
springboot有哪些特性?
創建springboot項目的兩種方式
(1)創建maven項目,然后在pom文件中加入springboot-starter依賴
(2)直接創建選擇springInitializer創建springboot項目
SpringBoot的啟動類
SpringApplication除了調用靜態run方法來啟動springboot項目,還可以創建實例對象,來使用SpringApplication的其他方法。
要使用SpringApplication的其他方法,需要自定義一個SpringApplication,然后使用它的其他方法
配置文件的使用
?
配置文件的優先級:上面的最高
上圖的最后一行命令是通過外部文件的配置文件來指定配置內容
config內的配置文件的優先級 >> 和config同級的配置文件的優先級
父級的配置文件的優先級 >> 子配置文件
命令行 + 配置參數 的優先級 >> 配置文件
配置屬性:先按位置找,同位置有多個配置文件,再按優先級順序高的采用
spring.profiles.active 指定環境 dev環境 ,沒有的屬性,會按照指定的 環境,從優先級低的配置文件中讀取。(下面文件的命名格式是約定)
對于不同環境的,通過spring.profiles.active 指定環境,也可以指定讓哪個類生效,通過給類上加注解@Profile("dev")
配置文件配置屬性:先看配置文件的位置 ,再看spring.profiles.active指定環境,再看優先級yml、yaml、properties
上面這種通過讀取的配置文件,它的優先級很低
屬性注入
1.通過@value+美元符,可以給單個成員變量注入參數值
如果類中的成員屬性過多,上述方式麻煩。可以采用方法2
2.給對象中的所有成員(變量)屬性注入參數值,可以通過@ConfigurationProperties+前綴prefix的方式給有的成員屬性賦值
配置文件中的參數命名很松散,多種方式都可以和成員變量 一一綁定
配置文件中的屬性占位符,可以實現對其他屬性的引用
配置文件中的屬性值可以賦隨機值,包含以下幾種形式的隨機值
如果不想把類的成員變量的賦值和yml文件寫在一起,可以通過@PropertySource()?指定外部配置來源的方式 來賦值