一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 基于SpringBoot2.0版本與老版本的區別

基于SpringBoot2.0版本與老版本的區別

2022-02-17 15:19尚硅谷24k純帥 Java教程

這篇文章主要介紹了SpringBoot2.0版本與老版本的區別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot2.0版本新特性

以Java 8 為基準

Spring Boot 2.0 要求Java 版本必須8以上, Java 6 和 7 不再支持。

內嵌容器包結構調整

為了支持reactive使用場景,內嵌的容器包結構被重構了的幅度有點大。EmbeddedServletContainer被重命名為WebServer,并且org.springframework.boot.context.embedded 包被重定向到了org.springframework.boot.web.embedded包下。

舉個例子,如果你要使用TomcatEmbeddedServletContainerFactory回調接口來自定義內嵌Tomcat容器,你現在應該使用TomcatServletWebServerFactory。

Servlet-specific 的server properties調整

大量的Servlet專屬的server.* properties被移到了server.servlet下:

Old property

New property

server.context-parameters.*

server.servlet.context-parameters.*

server.context-path

server.servlet.context-path

server.jsp.class-name

server.servlet.jsp.class-name

server.jsp.init-parameters.*

server.servlet.jsp.init-parameters.*

server.jsp.registered

server.servlet.jsp.registered

server.servlet-path

server.servlet.path

由此可以看出一些端倪,那就是server不再是只有servlet了,還有其他的要加入。

Actuator 默認映射

ctuator的端點(endpoint)現在默認映射到/application,比如,/info 端點現在就是在/application/info。但你可以使用management.context-path來覆蓋此默認值。

Spring Loaded不再支持

由于Spring Loaded項目已被移到了attic了,所以不再支持Spring Loaded了。現在建議你去使用Devtools。Spring Loaded不再支持了。

支持Quartz Scheduler

Spring Boot 2 針對Quartz調度器提供了支持。你可以加入spring-boot-starter-quartz starter來啟用。而且支持基于內存和基于jdbc兩種存儲。

OAuth 2.0 支持

Spring Security OAuth 項目中的功能將會遷移到Spring Security中。將會OAuth 2.0。

支持Spring WebFlux

WebFlux 模塊的名稱是 spring-webflux,名稱中的 Flux 來源于 Reactor 中的類 Flux。該模塊中包含了對反應式 HTTP、服務器推送事件和 WebSocket 的客戶端和服務器端的支持。

對于開發人員來說,比較重要的是服務器端的開發,這也是本文的重點。

在服務器端,WebFlux 支持兩種不同的編程模型:第一種是 Spring MVC 中使用的基于 Java 注解的方式;第二種是基于 Java 8 的 lambda 表達式的函數式編程模型。這兩種編程模型只是在代碼編寫方式上存在不同。

它們運行在同樣的反應式底層架構之上,因此在運行時是相同的。

WebFlux 需要底層提供運行時的支持,WebFlux 可以運行在支持 Servlet 3.1 非阻塞 IO API 的 Servlet 容器上,或是其他異步運行時環境,如 Netty 和 Undertow。

版本要求

  • Jetty
    • 要求Jetty最低版本為9.4。
  • Tomcat
    • 要求Tomcat最低版本為8.5。
  • Hibernate
    • 要求Hibernate最低版本為5.2。
  • Gradle
    • 要求Gradle最低版本為3.4。
  • SendGrid
    • SendGrid最低支持版本是3.2。為了支持這次升級,username和password已經被干掉了。因為API key現在是唯一支持的認證方式。

 

SpringBoot版本問題

IDEA創建springboot中啟動問題

Exception in thread “main” java.lang.AbstractMethodError:

org.springframework.boot.context.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)Z

基于SpringBoot2.0版本與老版本的區別

大家度知道這是一個springboot的啟動類

 

這是maven依賴

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>spring-context</artifactId>
					<groupId>org.springframework</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.1.0</version>
		</dependency>
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

看起來萬事俱備,也很符合springboot啟動需要,那就啟動吧

Exception in thread "main" java.lang.AbstractMethodError:

org.springframework.boot.context.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)Z

結果給你拋出這樣的異常

此時不慌,原因有兩個(我所能想到的,不喜勿噴)

  • jar沖突
  • springboot的版本問題

 

一、解決方案

IDEA中下載maven helper插件,方便排查jar沖突,

基于SpringBoot2.0版本與老版本的區別

重啟后的點擊pom會出現Dependency Analyzer

基于SpringBoot2.0版本與老版本的區別

排查沖突后再次運行程序,出現如下情況

基于SpringBoot2.0版本與老版本的區別

 

二、解決方案

像魔鬼一樣還是沒有解決,這時候瘋狂的上百度搜,依然沒有找到辦法解決,最后在拉屎的瞬間想到springboot 有一個 1.5.6的版本,出于好奇將2.1.3版本修改為1.5.6版本如下

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.6.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

看到下面的圖,恭喜你,springboot啟動成功

基于SpringBoot2.0版本與老版本的區別

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/shkstart/article/details/109577496

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产天堂久久综合网站 | 国产高清视频在线 | 亚洲精品中文字幕久久久久久 | 天天欲色成人综合网站 | 不良网站在线观看 | 国产成人激情视频 | 精品视频一区二区三区免费 | 91精品国产亚一区二区三区 | 全黄h全肉细节修仙玄幻文 全彩调教侵犯h本子全彩妖气he | chinese特色video | 色无月| 国产成+人+综合+亚洲欧美丁香花 | 美女扒开屁股让男人进去 | 精品久久99麻豆蜜桃666 | a级片欧美 | 农村妇女野战bbxxx | 好大好爽好涨太深了小喜 | 国产真实伦对白在线播放 | 亚洲乱亚洲23p女 | 久久免费看少妇级毛片蜜臀 | 色哟哟哟在线精品观看视频 | 欧美日韩一区二区三区久久 | 手机看片自拍自自拍日韩免费 | 欧美同志gaypronvideos | 超级乱淫伦小说1女多男 | 男男gaygays中国 | 无码AV毛片色欲欧洲美洲 | 亚洲成熟人网站 | 亚洲精品国产精品麻豆99 | 古装一级无遮挡毛片免费观看 | 91九色麻豆 | 四虎麻豆国产精品 | 国产青草视频在线观看免费影院 | 久久精品热只有精品 | 草草视频人人爽 | 精品国产爱久久 | 免费xxxx日本大片在线观看 | 成人午夜视频一区二区国语 | 80日本xxxxxxxxx96| 99热在线观看免费 | 免费一级毛片完整版在线看 |