springboot整體介紹

weixin_34259232發表於2017-09-05

1.springboot:快速開發,強大的運維能力。(監控,服務發現,並打)

2.微服務,將一個大系統分解成很多獨立的小服務,這些服務能隨時釋出。

3.2004年第一版spring 1.0,rod johnson, 2014年 spring boot

 

4.spring 1.0的出現徹底的改變了企業級java開發應用的方式,spring 的依賴注入,和aop宣告式事務意味著元件之間再也不存在耦合,再也不需要EJB了。

spring 2.0:xml的出現,可以使用xml文件進行配置

spring 2.5:有了更優雅的面向註解,即@component和@autowired註解,再也不需要顯 示的在xml文件裡宣告bean了。spring mvc註解也可以使用了。

spring 3.0:擁有了一整套全新的java配置,能完全取代xml,@enable開頭的註解進一步完善了這一特性。可以第一次寫出完全沒有xml文件的spring應用程式了。這玩意非常好。

spring 4.0:對條件化配置提供了支援,可根據應用程式的classpath,環境和其他因素,執行時,執行時,執行時決定使用哪些配置,忽略哪些配置。那些決策不需要通過編寫指令碼確定了,以前的方式是通過指令碼確實使用哪些配置,通過指令碼建立目錄,通過指令碼篩選配置檔案,以前是把選好的配置檔案放在部署包裡,現在不一樣了。

 

5.springboot的自動配置,springboot會智慧探測你正在構建哪種應用程式,然後會自動配置必要的元件以滿足應用程式的需要。對於常見的配置場景,不需要再顯示的編寫配置了.

6.springboot的起步依賴,starter depenency將常用依賴聚合在一起,簡化構建步驟。讓你不用去關心jar包特定名稱和版本資訊。

7.spring boot的Actuator能讓你一窺應用程式執行時的內部工作細節,看看spring應用程式上下文有哪些bean,spring mvc怎麼與路徑對映的,應用程式讀取了哪些配置屬性。

 

 

1.spring 2.5之前各種各樣的配置繁瑣無比,各種xm檔案,web.xml檔案。尤其在開啟一些spring特性時候,比如multipartResolver,事務管理和spring mvc時,還需要顯示的額外的手工配置,比如xml顯示的bean配置或者註解方式。

配置serlvet和過濾器

 

 

2.spring boot自帶不少非功能特性,比如:內嵌伺服器。

3.spring boot旨在簡化spring的開發,所以spring有啥它就有啥,且很多都是引用spring的jar包,sprig boot只不過增加了自己的一些功能和配置而已。

 

4.spring boot 簡化開發主要體現在4點:1.自動配置 2.起步依賴

 

5.spring的元件是輕量級的,但配置卻是重量級的,繁重的配置。

6.spring 2.5引入了基於註解的掃描,消除了大量的xml配置。

7.spring 3.0引入了基於java的配置,可以完全代替xml.

至此,我們依然沒能逃離配置的魔爪,在開啟某些spring 特性時,我們依然要顯示的xml或者java程式碼配置,比如事務管理和spring mvc,還需要xml或者java進行配置。配置servlet或者過濾器時,比如dispatcherservlet同樣還需要再web.xml配置配置,或者servlet程式碼裡顯著進行配置。註解掃描減少了配置量,java配置減少了xml配置,但spring還需要不少的配置,需要手動去進行。

 

所有這些手動的配置,都額外消耗了開發的精力。

因為這裡面有個思維切換:框架層配置和業務開發配置。

 

8.spring mvc是由spring來啟動的,spring mvc是由spring來啟動的,spring mvc是由spring來啟動的,

9.spring boot的新特性主要有以下:

1.自動配置

2,起步依賴:之前的各種不同版本jar包出現衝突也很煩人,還要知道groupid,artifactid

3.CLI命令列介面

4.Actuator

 

 

10.spring boot會為常見場景進行自動配置,spring boot會為常見場景進行自動配置,spring boot會為常見場景進行自動配置,spring boot會為常見場景進行自動配置,

11.起步依賴就是特殊的maven依賴,把常用庫聚合在一起。組成了幾個特定功能,特定功能的依賴。

比如:,以往舊的習慣,

你想用spring mvc,並採用json作為序列化格式,,並使用內嵌的Tomcat伺服器來提供服務。要實現以上目標,你在maven裡要分別加入8哥依賴:

spring core依賴

spring web依賴

spring webmvc依賴

jackson依賴

hibernate-validator依賴。

 

新的spring boot起步依賴,你只需新增一個spring boot的web依賴。

spring boot的起步依賴是面向功能的,而不是具體jar包。如果你想新增一個功能,就新增一個起步依賴即可。

比如,你想用JPA做持久化,那麼就加入jpa起步依賴。如果需要安全功能,就加入spring security起步依賴。

簡而言之,起步依賴是面向功能的,而非繁瑣的冗餘的面對諸多jar包的。

還有起步依賴,具體依賴的jar包都是經過測試的,可以不需關注版本問題。

 

20.spring boot的自動配置的關鍵在於,一旦加入了起步依賴,spring boot就會根起步依賴,去自動配置某些功能。

 

21.spring boot cli

22.spring boot Actuator:提供spring boot的強大的運維能力。,能監視spring boot應用執行時的所有內部情況。

包括:

1.spring 上下文配置的bean

2.spring boot自動配置都做了哪些配置

3.應用程式獲取到的環境變數,系統屬性

4.程式裡執行緒的數量和狀態

5.應用程式http請求追蹤情況

6.記憶體用量,垃圾回收,web請求,和datasource情況。

 

 

從本質上來說,spring boot就是spring.不是設呢應用程式或者其他的,就是比spring做了一些配置,和新增了監控功能而已。

 

20.你之前用到的spring 開發技術在這裡都能用到。

21.springboot啟動類,就叫bootstrap class。spring boot的啟動類有兩個作用:配置和啟動引導。

配置,就是可以配置一些bean。啟動引導雖然spring boot已經為你預設配置了很多bean,但還需要你手動進行一些配置的。這些配置bean就可以在啟動類中配置。

 

@SpringbootApplication 開啟元件掃描和自動配置 ,開啟元件掃描和自動配置 ,開啟元件掃描和自動配置 ,

其實@springbootapplicaton註解內部將三個註解組合在一起了:

1.spring的@configuration註解

2.spring的@Component註解,啟用元件掃描,這樣你寫的controller和service才能被注入到ioc容器中

3.springboot的@enableAutoConfige註解:就是這一行註解開啟了springboot強大的自動配置功能。

 

 

三。spring boot測試

1.@springApplicationConfiguration註解會載入spring應用程式上下文,並指定傳入引數class=xxx啟動類

2.@runwith(spori)

 

相關文章