一、導(dǎo)覽本文主要介紹以下幾部分: 二、什么是Spring Boot?Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過程。 三、為什么使用Spring Boot?Spring Boot是為簡(jiǎn)化Spring項(xiàng)目配置而生,使用它使得jar依賴管理以及應(yīng)用編譯和部署更為簡(jiǎn)單。Spring Boot提供自動(dòng)化配置,使用Spring Boot,你只需編寫必要的代碼和配置必須的屬性。
簡(jiǎn)單而言,即Spring Boot使編碼更簡(jiǎn)單,使配置更簡(jiǎn)單,使部署更簡(jiǎn)單,使監(jiān)控更簡(jiǎn)單。 四、Spring Boot提供哪些功能?1.無需手動(dòng)管理依賴jar包的版本Spring boot通過spring boot starter項(xiàng)目管理其提供的所有依賴的版本,當(dāng)升級(jí)spring boot時(shí),這些依賴的版本也會(huì)隨之升級(jí)。個(gè)人無需指定版本號(hào),但是也可以自定義版本號(hào)覆蓋springboot的默認(rèn)值。每個(gè)版本的boot都有對(duì)應(yīng)的base spring version,不建議明確地指定spring版本。 2.自動(dòng)配置,無需xmlSpring Boot嘗試根據(jù)你添加的jar依賴自動(dòng)配置你的應(yīng)用。例如,如果HSQLDB在類路徑中,并且你沒有手動(dòng)配置任何db連接bean,則Spring Boot會(huì)自動(dòng)配置一個(gè)內(nèi)存db。 3.可執(zhí)行jar包Spring Boot默認(rèn)將應(yīng)用打包成一個(gè)可執(zhí)行的jar包文件,構(gòu)建成功后使用java -jar命令即可運(yùn)行應(yīng)用。
4.外部化配置Spring Boot可以使用properties文件,YAML文件,環(huán)境變量,命令行參數(shù)等來外部化配置。屬性值可以使用@Value注解直接注入到bean中,并通過Spring的Environment抽象或經(jīng)過@ConfigurationProperties注解綁定到結(jié)構(gòu)化對(duì)象來訪問。 5.嵌入式servlet容器Spring Boot的web模塊內(nèi)置嵌入的Tomcat, Jetty, Undertow來構(gòu)建自包含的Servlet容器。web應(yīng)用打包成可執(zhí)行jar包時(shí),相應(yīng)的servlet 容器也會(huì)被嵌入到應(yīng)用jar中。并且servlets, filters和listeners都可以通過聲明為bean來被容器注冊(cè)。servlet容器還可以通過外部化配置來相關(guān)定制屬性,如server.port, server.session.persistence等。 6.無縫集成Spring security,Spring data, Spring Message等Spring Boot通過stater pom來導(dǎo)入這些依賴,當(dāng)發(fā)現(xiàn)相關(guān)jar在classpath中時(shí),Spring Boot將啟動(dòng)相應(yīng)的自動(dòng)配置。例如,如果security的jar在classpath中,Spring Boot的web應(yīng)用將自動(dòng)啟動(dòng)安全限制,并且默認(rèn)啟動(dòng)basic認(rèn)證。 7.devtools提供的開發(fā)時(shí)特性Spring Boot的devtools模塊可以為應(yīng)用增加開發(fā)時(shí)(development time)特性,例如開發(fā)環(huán)境屬性默認(rèn)值,自動(dòng)重啟,LiveReload(在自愿發(fā)生變化時(shí)觸發(fā)瀏覽器刷新),全局設(shè)置等。 8.Actuator提供的生產(chǎn)特性(health,metrics等)Actuator是個(gè)機(jī)器術(shù)語,目前沒有統(tǒng)一的翻譯,可以直譯為促動(dòng)器或執(zhí)行器,Actuator通過微小的改變就可以產(chǎn)生很大的移動(dòng)。 五、如何使用Spring Boot?1. 系統(tǒng)要求默認(rèn)情況下,Spring Boot 1.3.6.RELEASE 需要Java7和Spring框架4.2.7.RELEASE或以上。你可以在Java6下使用Spring Boot,不過需要添加額外配置。明確支持的構(gòu)建工具是Maven(3.2+)和Gradle(1.12+)。 2. 內(nèi)嵌Servlet容器要求下列內(nèi)嵌容器在滿足對(duì)應(yīng)的Servlet和JDK版本要求時(shí),支持開箱即用(out of the box):
※ Undertow 是一個(gè)采用 Java 開發(fā)的靈活的高性能 Web 服務(wù)器,提供包括阻塞和基于 NIO 的非堵塞機(jī)制。Undertow 是紅帽公司的開源產(chǎn)品,是 Wildfly 默認(rèn)的 Web 服務(wù)器。 你也可以將Spring Boot應(yīng)用部署到任何兼容Servlet 3.0+的容器。 3. 使用Spring Boot3.1 直接在Spring Boot CLI上運(yùn)行,或者在http://start./上構(gòu)建。3.2 Eclipse上使用Spring IDE插件提供的 New -> Spring Stater Project菜單。此方法和3.1中的start.是一樣的。 3.3 Maven的pom直接繼承spring-boot-starter-parent。Spring Boot依賴的groupId為 org.springframework.boot 。通常你的Maven POM文件需要繼承 spring-boot-starter-parent ,然后聲明一個(gè)或多個(gè)“Starter POMs”依賴。 3.4 不使用繼承,使用importScope=import可以使你無需繼承spring-boot-starter-parent,而又保留spring-boot-starter-parent提供的依賴管理(插件管理除外): ※ 除了3.4以外,3.1到3.3最終形成的pom文件和項(xiàng)目結(jié)構(gòu)是一樣的。 六、Spring Boot有哪些不足? 七、參考鏈接:http://www./cn/articles/microframeworks1-spring-boot?utm_source=infoq_en&utm_medium=link_on_en_item&utm_campaign=item_in_other_langs |
|