1. 程式人生 > >Spring Boot學習總結(7)——SpringBoot之於Spring優勢

Spring Boot學習總結(7)——SpringBoot之於Spring優勢

一、Spring在Java EE開發中是實際意義上的標準,但我們在開發Spring的時候可能會遇到以下令人頭疼的問題:
(1)大量配置檔案的定義;
(2)與第三方軟體整合的技術問題,Spring每個新版本的推出都以減少配置作為自己的主要目標,例如:
(a)推出@Component, @Service, @Repository, @Controller等註解在類上宣告Bean;
(b)推出@Configuration, @Bean的Java配置來替代Xml配置.

在指令碼語言和敏捷開發大行其道的時代,Java EE的開發顯得尤為笨重,讓人誤解Java EE開發就該如此.Spring在提升Java EE開發效率的腳步上從未停止過,而Spring Boot的推出時具有顛覆和劃時代意義的

.Spring Boot具有以下優點:
(1)遵循"習慣優於配置"原則,使用Spirng Boot只需很少的配置,大部分時候可以使用預設配置;
(2)專案快速搭建,另外還可以無配置整合第三方框架;
(3)可完全不使用xml配置,只使用自動配置和Java Config;
(4)內嵌入Servlet如Tomcat容器,應用可用jar包執行(java -jar);
(5)執行中應用狀態的監控.

二、SpringBoot核心功能
2.1、獨立執行Spring專案
Spring boot 可以以jar包形式獨立執行,執行一個Spring Boot專案只需要通過java -jar xx.jar來執行。
2.2、內嵌servlet容器

Spring Boot可以選擇內嵌Tomcat、jetty或者Undertow,這樣我們無須以war包形式部署專案。
2.3、提供starter簡化Maven配置
spring提供了一系列的start pom來簡化Maven的依賴載入,例如,當你使用了spring-boot-starter-web,會自動加入如圖5-1所示的依賴包。
2.4、自動裝配Spring
SpringBoot會根據在類路徑中的jar包,類、為jar包裡面的類自動配置Bean,這樣會極大地減少我們要使用的配置。當然,SpringBoot只考慮大多數的開發場景,並不是所有的場景,若在實際開發中我們需要配置Bean,而SpringBoot沒有提供支援,則可以自定義自動配置。

2.5、準生產的應用監控
SpringBoot提供基於http ssh telnet對執行時的專案進行監控。
2.6、無程式碼生產和xml配置
SpringBoot不是藉助與程式碼生成來實現的,而是通過條件註解來實現的,這是Spring4.x提供的新特性。
三、SpringBoot優缺點
優點:
3.1、快速構建專案。
3.2、對主流開發框架的無配置整合。
3.3、專案可獨立執行,無須外部依賴Servlet容器。
3.4、提供執行時的應用監控。
3.5、極大的提高了開發、部署效率。
3.6、與雲端計算的天然整合。

缺點:
    如果你不認同spring框架,也許這就是缺點。
四、SpringBoot特性
4.1、建立獨立的Spring專案
4.2、內建Tomcat和Jetty容器
4.3、提供一個starter POMs來簡化Maven配置
4.4、提供了一系列大型專案中常見的非功能性特性,如安全、指標,健康檢測、外部配置等
4.5、完全沒有程式碼生成和xml配置檔案

五、SpringBoot CLI
SpringBoot CLI 是SpringBoot提供的控制檯命令工具。
六、SpringBoot maven 構建專案
spring-boot-starter-parent:是一個特殊Start,它用來提供相關的Maven依賴項,使用它之後,常用的包依賴可以省去version標籤。
七、SpringBoot幾個常用的註解
(1)@RestController和@Controller指定一個類,作為控制器的註解 ,並說明其區別
(2)@RequestMapping方法級別的對映註解,這一個用過Spring MVC的小夥伴相信都很熟悉
(3)@EnableAutoConfiguration和@SpringBootApplication是類級別的註解,根據maven依賴的jar來自動猜測完成正確的spring的對應配置,只要引入了spring-boot-starter-web的依賴,預設會自動配置Spring MVC和tomcat容器
(4)@Configuration類級別的註解,一般這個註解,我們用來標識main方法所在的類,完成元資料bean的初始化。
(5)@ComponentScan類級別的註解,自動掃描載入所有的Spring元件包括Bean注入,一般用在main方法所在的類上
(6)@ImportResource類級別註解,當我們必須使用一個xml的配置時,使用@ImportResource和@Configuration來標識這個檔案資源的類。
(7)@Autowired註解,一般結合@ComponentScan註解,來自動注入一個Service或Dao級別的Bean
(8)@Component類級別註解,用來標識一個元件,比如我自定了一個filter,則需要此註解標識之後,Spring Boot才會正確識別。