Spring Boot——用於構建微服務的基礎框架
使用Spring框架時,會發現其配置文件比較複雜,許多內容經常都只是複製粘貼,比如通過Maven構建項目時,我們可以通過配置文件來自動導入依賴的jar包,但要使應用支持Spring,我們就要寫不少代碼,而且還要排查是否有遺漏的jar包,這不利於項目的快速構建和開發。spring boot的出現有效改善這種問題,它設計了大量的自動化配置來簡化Spring原有樣板化配置,使得開發者可以快速構建應用。
除了解決配置問題外,Spring Boot還通過一系列的Starter POMs的定義,讓我們整合各項功能的時候,不需要在Maven的pom.xml中維護那些複雜的依賴關係,而是通過類似模塊化的Starter模塊定義來引用,使得依賴管理工作變得很簡單。
沒使用Spring Boot之前的pom.xml
只列出一個項目中的部分依賴
<dependencies>
...
...
...
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
<!-- JSP相關 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<scope>provided</scope>
</dependency>
...
...
</dependencies>
使用Spring Boot的pom.xml
web相關依賴
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
同時,Spring Boot除了可以很好融入Docker之外,其自身也支持嵌入式的Tomcat,Jetty等容器。通過Spring Boot構建的應該不需要再安裝Tomcat,將應用達成war包,然後把war包部署到Tomcat上這些操作,只需要將Spring Boot應用打成jar包,通過java -jar jar包 就能運行一個標準化的web應用了。
快速構建Spring Boot項目
通過官方的項目構建工具Spring Initializr生成一個Spring Boot的基礎項目
根據需求選擇不同的構建工具和版本,以及依賴項,Generate Project後,會生成一個壓縮文件,解壓後,通過Idea導入maven項目。目錄結構如下: