本篇只是 Spring Boot 入門知識(shí)梳理保礼,具體入門應(yīng)用實(shí)踐會(huì)另起一篇。
Spring Boot 如其名稱所示蕉斜,依然是 Spring 的一類框架洒试。它在保持原有 Spring framework 特征(IoC、AOP等)的基礎(chǔ)上庶溶,做到了
- 更容易構(gòu)建獨(dú)立的煮纵、產(chǎn)品級(jí)的Spring應(yīng)用懂鸵。
- 基于現(xiàn)有的 Spring 平臺(tái)和第三方庫(kù),使開(kāi)發(fā)者對(duì)于改變的感知最小化行疏。
- 極大地簡(jiǎn)化 Spring 配置(幾乎很少需要配置文件)
- 基于 Spring Boot 的 Java 應(yīng)用可以直接通過(guò)打包成jar或通過(guò)war部署運(yùn)行匆光。
- 同時(shí)提供命令行開(kāi)發(fā)工具Spring Boot CLI,使得熟悉命令行的開(kāi)發(fā)者可以更快的完成項(xiàng)目構(gòu)建酿联。
Spring Boot 目標(biāo)
Spring Boot 的出現(xiàn)终息,是為了實(shí)現(xiàn)以下目標(biāo):
- 為 Spring 入門開(kāi)發(fā)者從根本上提供更快、更廣泛的開(kāi)發(fā)體驗(yàn)贞让。
- 可以直接從默認(rèn)配置快速開(kāi)始項(xiàng)目構(gòu)建周崭,并逐步向需求過(guò)度。即做到“開(kāi)箱即用”喳张。
- 不需要代碼生成续镇,也不需要XML配置。
Spring Boot 開(kāi)發(fā)環(huán)境需求
想要應(yīng)用Spring Boot销部,對(duì)于環(huán)境也是有一定的要求的:
- 基礎(chǔ)的框架依賴于Java 7磨取、spring-framework-4.3.5或以上版本。
- 官方推薦使用Java 8柴墩。
- 在項(xiàng)目自動(dòng)化構(gòu)建工具方面忙厌,推薦使用Maven或Gradle。
Servlet 容器
Spring Boot 框架內(nèi)嵌了三種 Servlet 容器:
- Tomcat 支持7江咳、8版本
- Jetty 支持8逢净、9.2、9.3版本
- Undertow 支持1.3版本
做到框架內(nèi)嵌Servlet容器歼指,是做到自動(dòng)化完成Web Application配置的基礎(chǔ)爹土。這樣就無(wú)需再對(duì)Servlet容器進(jìn)行配置以部署Spring Boot。
另外踩身,如果有需要胀茵,可將基于Spring Boot的Web應(yīng)用部署到任何兼容Servlet 3.0以上的容器中。
Spring Boot 引入項(xiàng)目
要想使用Spring Boot挟阻,需要引入合適的spring-boot-*.jar琼娘,在引入了相應(yīng)的JAR包后,就可以像使用Java Library一樣使用Spring Boot附鸽。(這個(gè)意思是脱拼,如果你愿意,引入合適的包后坷备,甚至可以用記事本開(kāi)發(fā)Spring Boot 項(xiàng)目)
在 Gradle 下使用Spring Boot
作為便利的項(xiàng)目自動(dòng)化構(gòu)建工具熄浓,Gradle 的功能離不開(kāi)其依賴的插件。而 Spring Boot 也為 Gradle 提供了相應(yīng)的插件——spring-boot-gradle-plugin省撑。該插件可以幫助開(kāi)發(fā)者做到
- 將 Spring Boot 應(yīng)用打包赌蔑、部署
- 運(yùn)行Spring Boot 應(yīng)用
- 使用Spring Boot項(xiàng)目依賴管理
總而言之俯在,在Gradle下使用Spring Boot 就需要在 Gradle 中引入插件,而該插件就能幫助開(kāi)發(fā)者更加便利地管理Spring Boot項(xiàng)目娃惯。
Spring Boot 自動(dòng)配置
Spring Boot 會(huì)依據(jù)引入的項(xiàng)目依賴跷乐,按照通常的習(xí)慣(約定)去自動(dòng)完成相關(guān)的配置。
例如石景,引入了 spring-boot-start-web 依賴,Spring Boot就會(huì)按照配置Web Application的默認(rèn)形式去自動(dòng)完成曾經(jīng)需要手動(dòng)完成的相關(guān)配置劈猿。
這樣做的好處就是開(kāi)發(fā)只需關(guān)注項(xiàng)目需要的依賴拙吉,而不是花精力在如何配置這些依賴上潮孽。而這樣一來(lái),項(xiàng)目就可以快速在默認(rèn)情況下運(yùn)行起來(lái)筷黔,之后在根據(jù)需求去修改配置就OK往史。
Main 方法
Spring Boot 保留了和普通 Java 應(yīng)用一樣的 main 方法,作為應(yīng)用的入口佛舱。
但 Spring Boot 的 main 方法會(huì)委托給 SpringApplication 類的 run 方法去完成椎例。
該方法需要當(dāng)前類的.class作為參數(shù)傳入,來(lái)告訴 Spring Boot 如何獲取主要的組件请祖。args參數(shù)可以用來(lái)傳入命令行輸入的指令订歪。
@SpringBootApplication 注解取代了以往的@Configuration、@EnableAutoConfiguration和@ComponentScan肆捕。因?yàn)樵撟⒔獾墓δ艿葍r(jià)于這三個(gè)注解刷晋。所以一般而言,使用這一個(gè)注解就足夠了慎陵。
至此眼虱,可以對(duì) Spring Boot 建立初步了解。