欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?Boot教程之必須了解的核心概念

 更新時(shí)間:2022年08月26日 08:53:21   作者:字母哥  
這篇文章主要介紹了Spring?Boot系列教程中的關(guān)于學(xué)習(xí)Spring?Boot必須了解的核心概念的相關(guān)資料,需要的朋友可以參考下

一、Spring Boot 、 Spring MVC 、Spring對(duì)比

首先你需要明白一件事情:Spring Boot項(xiàng)目目的并不是替換Spring、SpringMVC,而是使他們用起來更加簡(jiǎn)單。

Spring 框架

Spring框架最核心的特性就是依賴注入DI(Dependency Injecttion)和控制反轉(zhuǎn)IOC(Inversion Of Control)。如果你能夠合理的使用DI和IOC,可以開發(fā)出松耦合、擴(kuò)展性好的的應(yīng)用程序。

Spring MVC

Spring MVC提供了一種友好的方式來開發(fā)Web應(yīng)用程序。 通過使用諸如Dispatcher Servlet,ModelAndView和View Resolver,可以輕松開發(fā)Web應(yīng)用程序。

Spring Boot

Spring 和 Spring MVC最大的弊病在于存在大量的配置,并且這些配置在不同的項(xiàng)目中具有很高的相似性。從而導(dǎo)致重復(fù)配置,繁瑣而且雜亂!

Spring Boot期望通過結(jié)合自動(dòng)配置和starters來解決了這個(gè)問題。 另外,Spring Boot還提供了一些功能,可以更快地構(gòu)建可用于生產(chǎn)環(huán)境的應(yīng)用程序。

二、Spring Boot 自動(dòng)配置

Spring和Spring MVC應(yīng)用程序里面有大量的XML或Java Bean配置。Spring Boot為解決這個(gè)問題,提供一種新的解決方案,新的思維方式。

springboot思考的方式:是不是可以更加智能一點(diǎn),當(dāng)Spring中加入一些新的jar包,加入一些配置,可以自動(dòng)的影響應(yīng)用內(nèi)的bean的加載。 比如:Spring MVC JAR位于類路徑中時(shí),自動(dòng)配置Dispatcher Servlet。當(dāng)然,當(dāng)這些自動(dòng)的默認(rèn)配置不符合我們的要求的時(shí)候,我們可以修改。修改之前加載的這一些Bean,配置修改之后會(huì)自動(dòng)加載另外一些Bean。

三、什么是Spring Boot Starter?

Spring Boot Starter是一組被依賴第三方類庫(kù)的集合。

如果你要開發(fā)一個(gè)web應(yīng)用程序,就通過包管理工具(如maven)引入spring-boot-starter-web就可以了,而不用分別引入下面這么多依賴類庫(kù),spring-boot-starter-web一次性幫你引入下面的這些常用類庫(kù)。

  • Spring — spring 核心, beans, context上下文, AOP面向切面
  • Web MVC — Spring MVC
  • Jackson — JSON數(shù)據(jù)的序列化與反序列化
  • Validation — Hibernate參數(shù)校驗(yàn)及校驗(yàn)API
  • 嵌入式 Servlet Container — Tomcat
  • 日志框架Logging — logback, slf4j

四、什么是Spring Boot Starter Parent

所有的Spring Boot項(xiàng)目默認(rèn)使用spring-boot-starter-parent作為應(yīng)用程序的父項(xiàng)目。

<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.0.0.RELEASE</version>
</parent>

繼承父項(xiàng)目的好處在于: 統(tǒng)一java版本配置和其他的一些依賴類庫(kù)的版本。也就是說,你引入的第三方類庫(kù)不要加版本號(hào),父項(xiàng)目替你管理版本,而且是經(jīng)過兼容性測(cè)試的。比你自己隨便引入一個(gè)版本兼容性更好。

當(dāng)然父項(xiàng)目只能幫你管理一些常用類庫(kù)的版本,如果你引入一些不常用的jar,還是要自己管理版本號(hào)及兼容性!

五、嵌入式web容器

Spring boot打成jar包,默認(rèn)包含嵌入式的web容器:tomcat。你可以簡(jiǎn)單的使用如下命令啟動(dòng)一個(gè)web服務(wù):

java -jar springboot-demo.jar

這更有利于微服務(wù)的部署及微服務(wù)的構(gòu)建、啟動(dòng)、擴(kuò)容。Spring Boot還支持Jetty和Undertow作為web容器。

六、Spring Data

Spring Data的目標(biāo)是提供一種更友好的方式或者是API來存取數(shù)據(jù)。包括對(duì)于關(guān)系型數(shù)據(jù)庫(kù)和NOSQL數(shù)據(jù)的支持。比如:

  • Spring Data JPA — 關(guān)系型數(shù)據(jù)庫(kù)操作的API,友好且易于使用
  • Spring Data MongoDB -MongoDB的操作API
  • Spring Data REST — 從持久層Repositories自動(dòng)生成服務(wù)層API,暴露 REST APIs 接口。超級(jí)好用!

當(dāng)然,Spring Data還有更多好用的特性和支持等待你去探索!

七、spring boot2.x新特性

7.1.基礎(chǔ)環(huán)境升級(jí)

  • 最低 JDK 8,支持 JDK 9,不再支持 Java 6 和 7。Spring Boot 2.0 要求 Java 8 作為最低版本,許多現(xiàn)有的 API 已更新,以利用 Java 8 的特性。
    例如,接口上的默認(rèn)方法,函數(shù)回調(diào)以及新的 API,如 javax.time。
  • 如果你正在使用 Java 7 或更早版本,則在開發(fā) Spring Boot 2.0 應(yīng)用程序之前,需要升級(jí)你的 JDK。

7.2.依賴組件升級(jí)

  • Jetty 9.4,Jetty 是一個(gè)開源的 Servlet 容器,它為基于 Java 的 Web 內(nèi)容,例如 JSP 和 Servlet 提供運(yùn)行環(huán)境。Jetty 是使用 Java 語(yǔ)言編寫的,它的 API 以一組 JAR 包的形式發(fā)布。
  • Tomcat 8.5,Apache Tomcat 8.5.x 旨在取代 8.0.x,完全支持 Java 9。
  • Flyway 5,F(xiàn)lyway 是獨(dú)立于數(shù)據(jù)庫(kù)的應(yīng)用、管理并跟蹤數(shù)據(jù)庫(kù)變更的數(shù)據(jù)庫(kù)版本管理工具。用通俗的話講,F(xiàn)lyway 可以像 SVN 管理不同人的代碼那樣,管理不同人的 SQL 腳本,從而做到數(shù)據(jù)庫(kù)同步。
  • Hibernate 5.2,Hibernate 是一款非常流行的 ORM 框架。
  • Gradle 3.4,Spring Boot 的 Gradle 插件在很大程度上已被重寫,有了重大的改進(jìn)。
  • Thymeleaf 3.0,Thymeleaf 3 相對(duì)于 Thymeleaf 2 有非常大的性能提升。

7.3. 默認(rèn)軟件替換

  • 默認(rèn)數(shù)據(jù)庫(kù)連接池已從 Tomcat 切換到 HikariCP,HikariCP 是一個(gè)高性能的 JDBC 連接池,Hikari 是日語(yǔ)“光”的意思。
  • redis客戶端默認(rèn)使用 Lettuce,替換掉Jedis.Lettuce 是一個(gè)可伸縮的線程安全的 Redis 客戶端,用于同步、異步和反應(yīng)使用。多個(gè)線程可以共享同一個(gè) RedisConnection,它利用優(yōu)秀 Netty NIO 框架來高效地管理多個(gè)連接,支持先進(jìn)的 Redis 功能,如 Sentinel、集群、流水線、自動(dòng)重新連接和 Redis 數(shù)據(jù)模型。

7.4.新技術(shù)的引入

  • 響應(yīng)式編程WebFlux,重要的變革,后續(xù)章節(jié)會(huì)詳細(xì)展示
  • 支持 Quartz,Spring Boot 1.0 并沒有提供對(duì) Quartz 的支持,之前出現(xiàn)了各種集成方案,Spring Boot 2.0 給出了最簡(jiǎn)單的集成方式。
  • 對(duì)Kotlin 的支持
  • JOOQ 的支持,JOOQ 是基于 Java 訪問關(guān)系型數(shù)據(jù)庫(kù)的工具包。JOOQ 既吸取了傳統(tǒng) ORM 操作數(shù)據(jù)的簡(jiǎn)單性和安全性,又保留了原生 SQL 的靈活性,它更像是介于 ORMS 和 JDBC 的中間層。

7.5.彩蛋

在 Spring Boot 1.0 項(xiàng)目中 src/main/resources 路徑下新建一個(gè) banner.txt 文件,文件中寫入一些字符,啟動(dòng)項(xiàng)目時(shí)就會(huì)發(fā)現(xiàn)默認(rèn)的 Banner 被替換了,到了 Spring Boot 2.0 現(xiàn)在可以支持 Gif 文件的打印,Spring Boot 2.0 在項(xiàng)目啟動(dòng)的時(shí)候,會(huì)將 Gif 圖片的每一個(gè)畫面,按照順序打印在日志中,所有的畫面打印完畢后,才會(huì)啟動(dòng) Spring Boot 項(xiàng)目。

到此這篇關(guān)于Spring Boot教程之必須了解的核心概念的文章就介紹到這了,更多相關(guān)Spring Boot 核心概念內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring學(xué)習(xí)筆記之RedisTemplate的配置與使用教程

    Spring學(xué)習(xí)筆記之RedisTemplate的配置與使用教程

    這篇文章主要給大家介紹了關(guān)于Spring學(xué)習(xí)筆記之RedisTemplate配置與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • SpringBoot項(xiàng)目中控制臺(tái)日志的保存配置操作

    SpringBoot項(xiàng)目中控制臺(tái)日志的保存配置操作

    這篇文章主要介紹了SpringBoot項(xiàng)目中控制臺(tái)日志的保存配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 深入了解java 8的函數(shù)式編程

    深入了解java 8的函數(shù)式編程

    函數(shù)式編程并不是Java新提出的概念,其與指令編程相比,強(qiáng)調(diào)函數(shù)的計(jì)算比指令的計(jì)算更重要;與過程化編程相比,其中函數(shù)的計(jì)算可以隨時(shí)調(diào)用。下面我們來詳細(xì)了解一下吧
    2019-06-06
  • 淺談java 單例模式DCL的缺陷及單例的正確寫法

    淺談java 單例模式DCL的缺陷及單例的正確寫法

    這篇文章主要介紹了淺談java 單例模式DCL的缺陷及單例的正確寫法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Maven項(xiàng)目報(bào)錯(cuò):“?SLF4J:?Failed?to?load?class?“org.slf4j.impl.StaticLoggerBinder”的解決方案

    Maven項(xiàng)目報(bào)錯(cuò):“?SLF4J:?Failed?to?load?class?“org.slf4j.imp

    這篇文章主要給大家介紹了關(guān)于Maven項(xiàng)目報(bào)錯(cuò):“?SLF4J:?Failed?to?load?class?“org.slf4j.impl.StaticLoggerBinder?”的解決方案,文中給出詳細(xì)的解決思路與方法,需要的朋友可以參考下
    2022-03-03
  • java語(yǔ)言實(shí)現(xiàn)權(quán)重隨機(jī)算法完整實(shí)例

    java語(yǔ)言實(shí)現(xiàn)權(quán)重隨機(jī)算法完整實(shí)例

    這篇文章主要介紹了java語(yǔ)言實(shí)現(xiàn)權(quán)重隨機(jī)算法完整實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • SpringBoot與rabbitmq的結(jié)合的示例

    SpringBoot與rabbitmq的結(jié)合的示例

    這篇文章主要介紹了SpringBoot與rabbitmq的結(jié)合的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • SpringBoot詳解整合Spring?Cache實(shí)現(xiàn)Redis緩存流程

    SpringBoot詳解整合Spring?Cache實(shí)現(xiàn)Redis緩存流程

    這篇文章主要介紹了SpringBoot整合Spring?Cache實(shí)現(xiàn)Redis緩存方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • springboot+vue部署按照及運(yùn)行方法

    springboot+vue部署按照及運(yùn)行方法

    在本篇文章里小編給大家整理了關(guān)于springboot+vue部署按照及運(yùn)行方法和實(shí)例內(nèi)容,需要的朋友們學(xué)習(xí)參考下。
    2020-01-01
  • RabbitMQ消息隊(duì)列中多路復(fù)用Channel信道詳解

    RabbitMQ消息隊(duì)列中多路復(fù)用Channel信道詳解

    這篇文章主要介紹了RabbitMQ消息隊(duì)列中多路復(fù)用Channel信道詳解,消息Message是指在應(yīng)用間傳送的數(shù)據(jù),消息可以非常簡(jiǎn)單,比如只包含文本字符串,也可以更復(fù)雜,可能包含嵌入對(duì)象,需要的朋友可以參考下
    2023-08-08

最新評(píng)論