1. 程式人生 > 其它 >究竟什麼是Spring Boot,和普通Spring專案有什麼區別

究竟什麼是Spring Boot,和普通Spring專案有什麼區別

究竟什麼是Spring Boot,和普通Spring專案有什麼區別

(44條訊息) 究竟什麼是Spring Boot,和普通Spring專案有什麼區別_拖拖的部落格-CSDN部落格

背景
最近我們打算重構設計一個公共包,其中涉及到的一個命題就是公共包要不要引入Spring Boot。那麼問題來了究竟什麼是Spring Boot 呢

Spring簡介
Spring框架為開發Java應用程式提供了全面的基礎架構支援。

它包含一些很好的功能,如依賴注入和開箱即用的模組,如:

Spring JDBC
Spring MVC
Spring Security
Spring AOP
Spring ORM
Spring Test
這些模組可以大大縮短應用程式的開發時間。

Spring Boot 簡介
Spring Boot是在Spring的基礎上面搭設的框架,目的是為了簡化Spring專案的搭設和開發過程。

Spring Boot 特性
自動配置 Spring-boot-starter 開箱即用依賴模組
簡化統一配置檔案
監控管理actuator
內嵌瞭如Tomcat,Jetty,所有的依賴都打到一個jar包裡面,可以直接java -jar 執行
自動配置 Spring-boot-starter 開箱即用依賴模組
通過@SpringBootApplication註解配置一個Spring Boot專案。

它是一個組合註解包含了@EnableAutoConfiguration註解來啟動自動配置。

該註解利用@Condition相關的註解來掃描class path路徑下引入的jar包,容器中的bean物件,以及配置檔案中的相關屬性,來自動配置,並注入相關的bean物件。

SpringBoot為我們提供了簡化企業級開發絕大多數場景的starter pom,只要使用了相關場景的spring-boot-starter,相關的技術配置就會被簡化甚至不需要配置,就可以得到SpringBoot自動配置的Bean。
參考Spring Boot文件 Starters章節

舉例:
如果我們需要應用需要web的話需要引入spring-web spring-webmvc等幾個依賴,還需部署tomcat容器,配置 web.xml檔案(上下文,DispatcherServlet,mapping等)

如果是Spring boot的話只需要引入spring-boot-starter-web 其他的都會自動配置且注入好。簡潔,省事。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
1
2
3
4
SpringBoot還幫助我們統一做了版本管理,只需引入>spring-boot-starter-parent的版本號即可,Spring Boot有做大量的版本相容測試,因此可以避免我們自己設定版本導致的相容問題。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
1
2
3
4
5
6
在spring-boot-starter-parent中定義

<properties>
<activemq.version>5.15.4</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.64</appengine-sdk.version>
<artemis.version>2.4.0</artemis.version>
<aspectj.version>1.8.13</aspectj.version>
<assertj.version>3.9.1</assertj.version>
<atomikos.version>4.0.6</atomikos.version>
<bitronix.version>2.1.4</bitronix.version>
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
<byte-buddy.version>1.7.11</byte-buddy.version>
<caffeine.version>2.6.2</caffeine.version>
<cassandra-driver.version>3.4.0</cassandra-driver.version>
<classmate.version>1.3.4</classmate.version>
<commons-codec.version>1.11</commons-codec.version>
<commons-dbcp2.version>2.2.0</commons-dbcp2.version>
<commons-lang3.version>3.7</commons-lang3.version>
<commons-pool.version>1.6</commons-pool.version>
...
</properties>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
簡化統一配置檔案
Spring 相關的xml配置檔案,全部採用@Configuration程式碼的方式配置處理,不需要再維護一堆散亂無章的xml檔案

應用相關的配置預設用application-*.yml配置。約定優先,不再需要直接配置檔案

提供了@ConfigurationProperties註解將配置項自動轉換為javaBean物件方便使用

監控管理actuator
監控管理是生產級別必不可少的元件。專案中添加了spring-boot-starter-actuator依賴和少許的配置,及可以實現應用的監控和管理功能

<dependencies>
<dependency>
<groupId> org.springframework.boot </ groupId>
<artifactId> spring-boot-starter-actuator </ artifactId>
</ dependency>
</ dependencies>
1
2
3
4
5
6
可以http或者jmx的方式連線。

出於安全考慮並不會所有的埠都預設開啟,需要在配置檔案中配置需要開啟的埠
有如下埠

健康
環境變數
Spring MVC對映url
關閉服務
載入class列表
自動配置結果
快取
session
dump

參考Spring Boot文件Actuator章節


結論
Spring Boot是在Spring的基礎上面搭設的框架,目的是為了簡化Spring專案的搭設和開發過程。不存在衝突的問題。

它提供瞭如下特性如果有需求則可以引入

自動配置 Spring-boot-starter 開箱即用依賴模組
簡化統一配置檔案
監控管理actuator
內嵌瞭如Tomcat,Jetty,所有的依賴都打到一個jar包裡面,可以直接java -jar 執行
————————————————
版權宣告:本文為CSDN博主「拖布鞋」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_15288023/article/details/89450360