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)