Springboot是什麼?Springboot詳解!入門介紹
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 是未來發展的一個大趨勢。
相關文章
- Springboot mini - Solon詳解(一)- 快速入門Spring Boot
- SpringBoot介紹Spring Boot
- 【SpringBoot系列】SpringBoot註解詳解Spring Boot
- SpringBoot入門Spring Boot
- 什麼是整型?Python整型詳細介紹Python
- SpringBoot詳解Spring Boot
- dubbo整合springboot最詳細入門教程Spring Boot
- Springboot入門教程Spring Boot
- 【SpringBoot】快速入門Spring Boot
- Springboot快速入門Spring Boot
- SpringBoot @RestController詳解Spring BootRESTController
- 介紹SpringBoot 整合 Redis 快取Spring BootRedis快取
- 什麼是整型型別?Python整型詳細介紹型別Python
- 1. SpringBoot 入門Spring Boot
- #SpringBoot入門程式 @FDDLCSpring Boot
- SpringBoot入門及深入Spring Boot
- 網路安全入門之BurpSuite是什麼?定義及模組介紹!UI
- SpringBoot基礎24_SpringBoot快速入門2Spring Boot
- SpringBoot2.0應用(一):SpringBoot2.0簡單介紹Spring Boot
- bitlocker是什麼意思有什麼用 bitlocker功能作用詳細介紹
- springboot整合redis詳解Spring BootRedis
- SpringBoot admin 2.0 詳解Spring Boot
- springboot為什麼要用延遲匯入?Spring Boot
- SpringBoot入門 - 建立專案Spring Boot
- 是什麼JSON,簡單介紹JSON
- 什麼是位元組碼?python位元組碼詳細介紹!Python
- SpringBoot的官方英文介紹(中文譯本)Spring Boot
- 【SpringBoot學習一】開發入門--快速建立springboot程式Spring Boot
- 詳解Intellij IDEA搭建SpringBootIntelliJIdeaSpring Boot
- SpringBoot註解大全(詳細)Spring Boot
- Mybatis 入門介紹MyBatis
- Rocketmq 入門介紹MQ
- libevent入門介紹
- Django 入門介紹Django
- linux介紹(入門)Linux
- Nginx 入門介紹Nginx
- rollup入門介紹
- SpringBoot整合RabbitMQ(一)快速入門Spring BootMQ