您好,登錄后才能下訂單哦!
這篇文章主要介紹了Spring中Spring Boot與Spring MVC的核心概念是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Spring中Spring Boot與Spring MVC的核心概念是什么文章都會有所收獲,下面我們一起來看看吧。
首先你需要明白一件事情:Spring Boot項目目的并不是替換Spring、SpringMVC,而是使他們用起來更加簡單。
Spring框架最核心的特性就是依賴注入DI(Dependency Injecttion)和控制反轉IOC(Inversion Of Control)。如果你能夠合理的使用DI和IOC,可以開發出松耦合、擴展性好的的應用程序。
Spring MVC提供了一種友好的方式來開發Web應用程序。 通過使用諸如Dispatcher Servlet,ModelAndView和View Resolver,可以輕松開發Web應用程序。
Spring 和 Spring MVC最大的弊病在于存在大量的配置,并且這些配置在不同的項目中具有很高的相似性。從而導致重復配置,繁瑣而且雜亂!
Spring Boot期望通過結合自動配置和starters來解決了這個問題。 另外,Spring Boot還提供了一些功能,可以更快地構建可用于生產環境的應用程序。
Spring和Spring MVC應用程序里面有大量的XML或Java Bean配置。Spring Boot為解決這個問題,提供一種新的解決方案,新的思維方式。
springboot思考的方式:是不是可以更加智能一點,當Spring中加入一些新的jar包,加入一些配置,可以自動的影響應用內的bean的加載。 比如:Spring MVC JAR位于類路徑中時,自動配置Dispatcher Servlet。當然,當這些自動的默認配置不符合我們的要求的時候,我們可以修改。修改之前加載的這一些Bean,配置修改之后會自動加載另外一些Bean。
Spring Boot Starter是一組被依賴第三方類庫的集合。
如果你要開發一個web應用程序,就通過包管理工具(如maven)引入spring-boot-starter-web就可以了,而不用分別引入下面這么多依賴類庫,spring-boot-starter-web一次性幫你引入下面的這些常用類庫。
Spring — spring 核心, beans, context上下文, AOP面向切面
Web MVC — Spring MVC
Jackson — JSON數據的序列化與反序列化
Validation — Hibernate參數校驗及校驗API
嵌入式 Servlet Container — Tomcat
日志框架Logging — logback, slf4j
所有的Spring Boot項目默認使用spring-boot-starter-parent作為應用程序的父項目。
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>
繼承父項目的好處在于: 統一java版本配置和其他的一些依賴類庫的版本。也就是說,你引入的第三方類庫不要加版本號,父項目替你管理版本,而且是經過兼容性測試的。比你自己隨便引入一個版本兼容性更好。
當然父項目只能幫你管理一些常用類庫的版本,如果你引入一些不常用的jar,還是要自己管理版本號及兼容性!
Spring boot打成jar包,默認包含嵌入式的web容器:tomcat。你可以簡單的使用如下命令啟動一個web服務:
java -jar springboot-demo.jar
這更有利于微服務的部署及微服務的構建、啟動、擴容。Spring Boot還支持Jetty和Undertow作為web容器。
Spring Data的目標是提供一種更友好的方式或者是API來存取數據。包括對于關系型數據庫和NOSQL數據的支持。比如:
Spring Data JPA — 關系型數據庫操作的API,友好且易于使用
Spring Data MongoDB -MongoDB的操作API
Spring Data REST — 從持久層Repositories自動生成服務層API,暴露 REST APIs 接口。超級好用!
當然,Spring Data還有更多好用的特性和支持等待你去探索!
最低 JDK 8,支持 JDK 9,不再支持 Java 6 和 7。Spring Boot 2.0 要求 Java 8 作為最低版本,許多現有的 API 已更新,以利用 Java 8 的特性。
例如,接口上的默認方法,函數回調以及新的 API,如 javax.time。
如果你正在使用 Java 7 或更早版本,則在開發 Spring Boot 2.0 應用程序之前,需要升級你的 JDK。
Jetty 9.4,Jetty 是一個開源的 Servlet 容器,它為基于 Java 的 Web 內容,例如 JSP 和 Servlet 提供運行環境。Jetty 是使用 Java 語言編寫的,它的 API 以一組 JAR 包的形式發布。
Tomcat 8.5,Apache Tomcat 8.5.x 旨在取代 8.0.x,完全支持 Java 9。
Flyway 5,Flyway 是獨立于數據庫的應用、管理并跟蹤數據庫變更的數據庫版本管理工具。用通俗的話講,Flyway 可以像 SVN 管理不同人的代碼那樣,管理不同人的 SQL 腳本,從而做到數據庫同步。
Hibernate 5.2,Hibernate 是一款非常流行的 ORM 框架。
Gradle 3.4,Spring Boot 的 Gradle 插件在很大程度上已被重寫,有了重大的改進。
Thymeleaf 3.0,Thymeleaf 3 相對于 Thymeleaf 2 有非常大的性能提升。
默認數據庫連接池已從 Tomcat 切換到 HikariCP,HikariCP 是一個高性能的 JDBC 連接池,Hikari 是日語“光”的意思。
redis客戶端默認使用 Lettuce,替換掉Jedis.Lettuce 是一個可伸縮的線程安全的 Redis 客戶端,用于同步、異步和反應使用。多個線程可以共享同一個 RedisConnection,它利用優秀 Netty NIO 框架來高效地管理多個連接,支持先進的 Redis 功能,如 Sentinel、集群、流水線、自動重新連接和 Redis 數據模型。
響應式編程WebFlux,重要的變革,后續章節會詳細展示
支持 Quartz,Spring Boot 1.0 并沒有提供對 Quartz 的支持,之前出現了各種集成方案,Spring Boot 2.0 給出了最簡單的集成方式。
對Kotlin 的支持
JOOQ 的支持,JOOQ 是基于 Java 訪問關系型數據庫的工具包。JOOQ 既吸取了傳統 ORM 操作數據的簡單性和安全性,又保留了原生 SQL 的靈活性,它更像是介于 ORMS 和 JDBC 的中間層。
在 Spring Boot 1.0 項目中 src/main/resources 路徑下新建一個 banner.txt 文件,文件中寫入一些字符,啟動項目時就會發現默認的 Banner 被替換了,到了 Spring Boot 2.0 現在可以支持 Gif 文件的打印,Spring Boot 2.0 在項目啟動的時候,會將 Gif 圖片的每一個畫面,按照順序打印在日志中,所有的畫面打印完畢后,才會啟動 Spring Boot 項目。
關于“Spring中Spring Boot與Spring MVC的核心概念是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Spring中Spring Boot與Spring MVC的核心概念是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。