15.SpringBoot簡介-SpringBoot是什麼能夠作什麼

轉自:https://blog.csdn.net/kingboyworld/article/details/77713743java

 

在過去的兩年時間裏,最讓人興奮、回頭率最高、最能改變遊戲規則的東西,大概就是Spring Boot了。Spring Boot提供了一種新的編程範式,能在最小的阻力下開發Spring應用程序。有了它, 你能夠更加敏捷地開發Spring應用程序,專一於應用程序的功能,不用在Spring的配置上多花功 夫,甚至徹底不用配置。實際上,Spring Boot的一項重要工做就是讓Spring配置再也不成爲你成功路上的絆腳石。mysql

1、自動配置

以往,在任何的spring項目中,你都會找到Java配置或一大堆的XML配置文件,它們爲應用程序開啓了特定的特性和功能。看如下幾個例子: 
1. web.xmlweb

這裏寫圖片描述

2.jdbcTemplatespring

這裏寫圖片描述

3.事務管理sql

這裏寫圖片描述

在以上三個例子中,不少配置都是複雜而且模板化,這提升了咱們開發的成本。而在springboot中這些都自動爲咱們作好了,讓開發人員更加專一於業務需求的開發。shell

2、起步依賴

向項目中添加依賴是件富有挑戰的事。你須要什麼庫?它的Group和Artifact是什麼?你須要哪一個版本?哪一個版本不會和項目中的其餘依賴發生衝突?Spring Boot經過起步依賴爲項目的依賴管理提供幫助。起步依賴其實就是特殊的Maven依賴和Gradle依賴,利用了傳遞依賴解析,把經常使用庫聚合在一塊兒,組成了幾個爲特定功能而定製的依賴。舉個例子,假設你正在用Spring MVC構造一個REST API,並將JSON(JavaScript Object Notation)做爲資源表述。此外,你還想運用遵循JSR-303規範的聲明式校驗,並使用嵌入式的Tomcat服務器來提供服務。要實現以上目標,你在Maven或Gradle裏至少須要如下8個依賴:數據庫

org.springframework:spring-core org.springframework:spring-web org.springframework:spring-webmvc com.fasterxml.jackson.core:jackson-databind org.hibernate:hibernate-validator org.apache.tomcat.embed:tomcat-embed-core org.apache.tomcat.embed:tomcat-embed-el org.apache.tomcat.embed:tomcat-embed-logging-juli

 

不過,若是打算利用Spring Boot的起步依賴,你只需添加Spring Boot的Web起步依賴(org.springframework.boot:spring-boot-starter-web),僅此一個。它會根據依賴傳遞把其餘所需依賴引入項目裏,你都不用考慮它們。apache

比起減小依賴數量,起步依賴還引入了一些微妙的變化。向項目中添加了Web起步依賴,實際上指定了應用程序所需的一類功能(條件注入:發現有相應包就自動配置相應功能, @ConditionalOn*)。由於應用是個We b應用程序,因此加入了We b起步依賴。與之相似,若是應用程序要用到JPA持久化,那麼就能夠加入jpa起步依賴。若是須要安全功能,那就加入security起步依賴。 
簡而言之,你再也不須要考慮支持某種功能要用什麼庫了,引入相關起步依賴就行。此外,Spring Boot的起步依賴還把你從「須要這些庫的哪些版本」這個問題裏解放了出來。起步依賴引入的庫的版本都是通過測試的,所以你能夠徹底放心,它們之間不會出現不兼容的狀況。編程

3、Actuator

Actuator則要提供在運行時檢視應用程序內部狀況的能力。安裝了Actuator就能窺探應用程序的內部狀況了,包括以下細節:tomcat

  1. Spring應用程序上下文裏配置的Bean
  2. Spring Boot的自動配置作的決策
  3. 應用程序取到的環境變量、系統屬性、配置屬性和命令行參數
  4. 應用程序裏線程的當前狀態
  5. 應用程序最近處理過的HTTP請求的追蹤狀況
  6. 各類和內存用量、垃圾回收、Web請求以及數據源用量相關的指標

Actuator經過Web端點和shell界面向外界提供信息。若是要藉助shell界面,你能夠打開SSH(Secure Shell),登入運行中的應用程序,發送指令查看它的狀況。

4、內嵌容器

能夠經過配置插件,爲springboot提供不一樣類型的容器。只須要經過java –jar 的方式便可啓動應用程序。

5、YML配置文件

傳統項目中使用properties文件做爲key-value的載體,但其缺點也是明顯的。會重複的進行鏈式配置,而YML文件則避免了這個問題。

Properties文件方式

#Properties配置數據庫鏈接 spring.datasource.url=jdbc:mysql://localhost:3306/config spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver

 

Yaml文件方式

#YML配置數據庫鏈接 Spring: Datasource: url: jdbc:mysql://localhost:3306/config username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver

 

SpringBoot不是什麼

由於Spring Boot實在是太驚豔了,因此過去一年多的時間裏有很多和它相關的言論。原先聽到或看到的東西可能給你形成了一些誤解。

首先,Spring Boot不是應用服務器。這個誤解是這樣產生的:Spring Boot能夠把We b應用程序變爲可自執行的JAR文件,不用部署到傳統Java應用服務器裏就能在命令行裏運行。Spring Boot在應用程序裏嵌入了一個Servlet容器(Tomcat、Jetty或Undertow),以此實現這一功能。但這是內嵌的Servlet容器提供的功能,不是Spring Boot實現的。

與之相似,Spring Boot也沒有實現諸如JPA或JMS(Java Message Service,Java消息服務)之類的企業級Java規範。它的確支持很多企業級Java規範,可是要在Spring裏自動配置支持那些特性的Bean。例如,Spring Boot沒有實現JPA,不過它自動配置了某個JPA實現(好比Hibernate)的Bean,以此支持JPA。

最後,Spring Boot沒有引入任何形式的代碼生成,而是利用了Spring 4的條件化配置特性,以及Maven和Gradle提供的傳遞依賴解析,以此實現Spring應用程序上下文裏的自動配置。

簡而言之,從本質上來講,Spring Boot就是Spring,它作了那些沒有它你本身也會去作的Spring Bean配置。你不用再寫這些樣板配置了,能夠專一於應用程序的邏輯,這些纔是應用程序獨一無二的東西。

相關文章
相關標籤/搜索