基于SpringBoot2.0版本与⽼版本的区别
⽬录
SpringBoot版本问题
这是maven依赖
⼀、解决⽅案
⼆、解决⽅案
SpringBoot2.0版本新特性
以Java 8 为基准
Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再⽀持。
内嵌容器包结构调整
为了⽀持reactive使⽤场景,内嵌的容器包结构被重构了的幅度有点⼤。EmbeddedServletContainer被重命名为WebServer,并且org.t.embedded 包被重定向到了
org.springframework.bedded包下。
举个例⼦,如果你要使⽤TomcatEmbeddedServletContainerFactory回调接⼝来⾃定义内嵌Tomcat容器,你现在应该使⽤TomcatServletWebServerFactory。
Servlet-specific 的server properties调整
⼤量的Servlet专属的server.* properties被移到了server.servlet下:
Old property New property
server.jsp.class-name server.servlet.jsp.class-name
server.jsp.init-parameters.*server.servlet.jsp.init-parameters.*
istered server.istered
server.servlet-path server.servlet.path
由此可以看出⼀些端倪,那就是server不再是只有servlet了,还有其他的要加⼊。
Actuator 默认映射
ctuator的端点(endpoint)现在默认映射到/application,⽐如,/info 端点现在就是在/application/info。但你可以使⽤t-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.t.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)Z
⼤家度知道这是⼀个springboot的启动类
这是maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0 /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&le</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
spring mvc和boot区别<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.t.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)Z 结果给你抛出这样的异常
此时不慌,原因有两个(我所能想到的,不喜勿喷)
jar冲突
springboot的版本问题
⼀、解决⽅案
在IDEA中下载maven helper插件,⽅便排查jar冲突,
重启后的点击pom会出现Dependency Analyzer
排查冲突后再次运⾏程序,出现如下情况
⼆、解决⽅案
像魔⿁⼀样还是没有解决,这时候疯狂的上百度搜,依然没有到办法解决,最后在拉屎的瞬间想到s
pringboot 有⼀个 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启动成功
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。