Springboot是什麼?Springboot詳解!入門介紹

墨痕訴清風發表於2020-10-11

Spring Boot概述

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的建立、執行、除錯、部署等。使用Spring Boot可以做到專注於Spring應用的開發,而無需過多關注XML的配置。Spring Boot使用“習慣優於配置”的理念,簡單來說,它提供了一堆依賴打包,並已經按照使用習慣解決了依賴問題。使用Spring Boot可以不用或者只需要很少的Spring配置就可以讓企業專案快速執行起來。

Spring Boot是開發者和Spring 本身框架的中間層,幫助開發者統籌管理應用的配置,提供基於實際開發中常見配置的預設處理(即習慣優於配置),簡化應用的開發,簡化應用的運維;總的來說,其目的Spring Boot就是為了對Java web 的開發進行“簡化”和加“快”速度,簡化開發過程中引入或啟動相關Spring 功能的配置。這樣帶來的好處就是降低開發人員對於框架的關注點,可以把更多的精力放在自己的業務程式碼上。

同時隨著微服務概念的推廣和實踐,Spring Boot的精簡理念又使其成為Java微服務開發的不二之選,也可以說,Spring Boot其實就是為了微服務而生的Java web框架。

先如今,Spring Boot已經在蓬勃發展的快速應用開發領域(rapid application development)成為領導者

1.2.2 Spring Boot的核心功能

1、 可獨立執行的Spring專案:Spring Boot可以以jar包的形式獨立執行。

2、 內嵌的Servlet容器:Spring Boot可以選擇內嵌Tomcat、Jetty或者Undertow,無須以war包形式部署專案。

3、 簡化的Maven配置:Spring提供推薦的基礎 POM 檔案來簡化Maven 配置。

4、 自動配置Spring:Spring Boot會根據專案依賴來自動配置Spring 框架,極大地減少專案要使用的配置。

5、 提供生產就緒型功能:提供可以直接在生產環境中使用的功能,如效能指標、應用資訊和應用健康檢查。

6、 無程式碼生成和xml配置:Spring Boot不生成程式碼。完全不需要任何xml配置即可實現Spring的所有配置。

我們的主要目標是:

  • 為所有Spring開發提供一個更快,更廣泛的入門體驗。
  • 立即開始斟酌,但隨著需求開始偏離預設值,快速避開
  • 提供大型專案(如嵌入式伺服器,安全性,指標,執行狀況檢查和外部配置)通用的一系列非功能性功能。
  • 絕對不會生成程式碼,並且不需要XML配置。

1.2.3SpringBootB的相關好處

A.為什麼要用SpringBoot?

B.什麼是SpringBoot?

C.SpringBoot與SpringCloud 的區別?

D.SpringBoot與SpringMVC 的區別?

(一)為什麼要用SpringBoot?

以往的專案整合起來是比較繁瑣複雜的,而且存在架包衝突的問題,這時候SpringBoot應運而生了,SpringBoot也就是用來做這個的。

(二)什麼是SpringBoot?

SpringBoot是一個快速開發的框架,能過快速整合第三方框架,他是如何快速整合的呢?其實他是的基本原來是Maven依賴關係,Maven的整合,完全採用註解化,簡化XML配置,內嵌HTTP伺服器(Tomcate,jetty),預設嵌入Tomcate,最終以Java應用程式進行執行。

總結一下:

1.SpringBoot是微服務框架(網上很多這樣說的朋友,其實並不合理,後面我們總結也SpringCloud的時候在細說)

2.SpringBoot核心:快速整合第三方框架

3.SpringBoot原理:Maven依賴關係,Maven的繼承,完全採用註解化,Spring3.0以後採用註解方式啟動SpringMVC

(三)SpringBoot與SpringCloud 的區別?

1.SpringBoot快速開發框架,快速整合第三方框架(Maven依賴關係###Maven繼承),完全採用註解化,簡化XML配置,最終以java應用程式進行執行。

2.SpringCloud一套目前完整的微服務解決框架,功能非常強大,註冊中心,客戶端呼叫工具,服務治理(負載均衡,斷路器,分散式配置中心,網管,訊息匯流排等)。

3.關係:微服務通訊技術Http+json(restfull)輕量級,SpringBoot Web元件預設整合SpringMVC,SpringCloud依賴於SpringBoot實現微服務,使用SpringMVC編寫微服務介面。

總結:

SpringCloud 微服務開發——RPC遠端通訊技術,服務治理,單純的只是整合SpringBoot實現快速開發。

(四)SpringBoot與SpringMVC 的區別?

說白了就是SpringBoot Web元件預設整合SpringMVC框架,SpringMVC3.0以後支援註解方式使用java程式碼啟動SpringMVC。

1.2.4為什麼學習SpringBoot

1.從官方來看

2.從Spring的優點來看

①良好的基因

因為SpringBoot是伴隨著Spring 4.0而生的,boot是引導的意思,也就是它的作用其實就是在於幫助開發者快速的搭建Spring框架,因此SpringBoot繼承了Spring優秀的基因,在Spring中開發更為方便快捷。

②簡化編碼

比如我們要建立一個 web 專案,使用 Spring 的朋友都知道,在使用 Spring 的時候,需要在 pom 檔案中新增多個依賴,而 Spring Boot 則會幫助開發著快速啟動一個 web 容器,在 Spring Boot 中,我們只需要在 pom 檔案中新增如下一個 starter-web 依賴即可。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

我們點選進入該依賴後可以看到,Spring Boot 這個 starter-web 已經包含了多個依賴,包括之前在 Spring 工程中需要匯入的依賴,我們看一下其中的一部分,如下:

<!-- .....省略其他依賴 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.0.7.RELEASE</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.0.7.RELEASE</version>
    <scope>compile</scope>
</dependency>

由此可以看出,Spring Boot 大大簡化了我們的編碼,我們不用一個個匯入依賴,直接一個依賴即可。

③簡化配置

Spring 雖然使Java EE輕量級框架,但由於其繁瑣的配置,一度被人認為是“配置地獄”。各種XML、Annotation配置會讓人眼花繚亂,而且配置多的話,如果出錯了也很難找出原因。Spring Boot更多的是採用 Java Config 的方式,對 Spring 進行配置。舉個例子:

我新建一個類,但是我不用 @Service註解,也就是說,它是個普通的類,那麼我們如何使它也成為一個 Bean 讓 Spring 去管理呢?只需要@Configuration 和@Bean兩個註解即可,如下:

public class TestService {
    public String sayHello () {
        return "Hello Spring Boot!";
    }
}
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class JavaConfig {
    @Bean
    public TestService getTestService() {
        return new TestService();
    }
}

@Configuration表示該類是個配置類,@Bean表示該方法返回一個 Bean。這樣就把TestService作為 Bean 讓 Spring 去管理了,在其他地方,我們如果需要使用該 Bean,和原來一樣,直接使用@Resource註解注入進來即可使用,非常方便。

@Resource private TestService testService;

另外,部署配置方面,原來 Spring 有多個 xml 和 properties配置,在 Spring Boot 中只需要個 application.yml即可。

④簡化部署

在使用 Spring 時,專案部署時需要我們在伺服器上部署 tomcat,然後把專案打成 war 包扔到 tomcat裡,在使用 Spring Boot 後,我們不需要在伺服器上去部署 tomcat,因為 Spring Boot 內嵌了 tomcat,我們只需要將專案打成 jar 包,使用 java -jar xxx.jar一鍵式啟動專案。
另外,也降低對執行環境的基本要求,環境變數中有JDK即可。

⑤簡化監控

我們可以引入 spring-boot-start-actuator 依賴,直接使用 REST 方式來獲取程式的執行期效能引數,從而達到監控的目的,比較方便。但是 Spring Boot 只是個微框架,沒有提供相應的服務發現與註冊的配套功能,沒有外圍監控整合方案,沒有外圍安全管理方案,所以在微服務架構中,還需要 Spring Cloud 來配合一起使用。

3.從未來發展趨勢看

微服務是未來發展的趨勢,專案會從傳統架構慢慢轉向微服務架構,因為微服務可以使不同的團隊專注於更小範圍的工作職責、使用獨立的技術、更安全更頻繁地部署。而 繼承了 Spring 的優良特性,與 Spring 一脈相承,而且 支援各種REST API 的實現方式。Spring Boot 也是官方大力推薦的技術,可以看出,Spring Boot 是未來發展的一個大趨勢。

相關文章