聊聊Spring Boot 2.0与Java 9

开发 开发工具
Java 9发布至今已经有半年之久,Spring Boot对其的支持进度也快接近完成,本文就来整理一下在Java 9上运行Spring Boot的一些要点。

 Java 9发布至今已经有半年之久,Spring Boot对其的支持进度也快接近完成,本文就来整理一下在Java 9上运行Spring Boot的一些要点。

必须使用Spring Boot2.0

在Spring Boot的版本计划中明确说明了2.0版本开始才对Java 9进行支持,而1.x版本暂时没有对Java 9的支持计划,所以如果我们要使用Java 9,就必须将Spring Boot版本升级至2.0。

[[233492]]

细节注意点

AspectJ

在Java9中要使用JDK的编译织入切面时,我们需要引入AspectJ 1.9,但是这个版本还处于RC状态,并不是正式版本,所以当Spring Boot 2会在Aspect 1.9 GA的时候更新这个版本依赖。

JAXB

如果使用Hibernate的情况下,由于依赖JAXB,这个时候可能会碰到这个错误:java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException,面对这个问题,只需要引入如下依赖就可以解决:

  1. <dependency> 
  2.     <groupId>javax.xml.bind</groupId> 
  3.     <artifactId>jaxb-api</artifactId> 
  4.     <version>2.3.0</version> 
  5. </dependency> 

测试插件

***的maven-surefire-plugin 插件(2.20.1版本)需要手工指定一个模块以防止包含java.se.ee:

  1. <plugin> 
  2.         <groupId>org.apache.maven.plugins</groupId> 
  3.         <artifactId>maven-surefire-plugin</artifactId> 
  4.         <configuration> 
  5.                 <argLine>--add-modules java.base</argLine> 
  6.         </configuration> 
  7. </plugin> 

或者也可以指定降级到2.20.0版本

一些暂不支持的类库

Apache Cassandra,具体可见:#10453

JSP TLDs在嵌入式Tomcat中不生效,具体可见:#10456

参考资料

Running Spring Boot on Java 9

【本文为51CTO专栏作者“翟永超”的原创稿件,转载请通过51CTO联系作者获取授权】

戳这里,看该作者更多好文

 

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2021-07-26 11:09:43

NacosSpring Boot配置

2018-05-30 15:10:24

Spring BootList类型

2022-07-11 09:00:37

依赖配置文件Mybati

2024-10-15 09:34:57

2018-06-06 14:30:38

Spring BootApplication事件

2018-06-20 15:42:09

2020-05-14 18:04:20

Spring BootSaaS平台

2009-06-19 13:28:30

Spring AOPSpring 2.0

2009-06-19 12:53:56

Spring 2.0

2020-07-02 07:44:27

Spring教程异步

2023-04-28 08:43:46

2021-06-04 08:48:46

Spring ClouMaven Centr版本

2020-09-17 13:43:03

等保2.0网络安全漏洞

2024-11-08 13:13:58

2024-10-23 08:13:30

Spring响应式编程

2023-10-31 07:48:22

QuarkusJava

2024-09-11 08:22:44

2024-03-08 10:50:44

Spring技术应用程序

2024-03-11 10:21:53

.NET9调用FCall

2021-03-08 00:11:02

Spring注解开发
点赞
收藏

51CTO技术栈公众号