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。

细节注意点

AspectJ

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

JAXB

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

<dependency>    <groupId>javax.xml.bind</groupId>    <artifactId>jaxb-api</artifactId>    <version>2.3.0</version></dependency>

测试插件

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

<plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-surefire-plugin</artifactId>        <configuration>                <argLine>--add-modules java.base</argLine>        </configuration></plugin>

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

一些暂不支持的类库

  1. Apache Cassandra,具体可见:#10453
  2. JSP TLDs在嵌入式Tomcat中不生效,具体可见:#10456

参考资料

  • Running Spring Boot on Java 9

Spring Boot 2.0与Java 9相关推荐

  1. 【译】Spring Boot 2.0 官方迁移指南

    前提 希望本文档将帮助您把应用程序迁移到 Spring Boot 2.0. 在你开始之前 首先,Spring Boot 2.0 需要 Java 8 或更高版本.不再支持 Java 6 和 7 了. 在 ...

  2. Spring Boot 2.0 新特性

    作者:贺卓凡 原文:https://mp.weixin.qq.com/s/EWmuzsgHueHcSB0WH-3AQw 以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8 ...

  3. Spring Boot 2.0 新特性和发展方向

    以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持. 内嵌容器包结构调整 为了支持reactive使用场景,内嵌的容器包结构被重构了 ...

  4. Spring Boot 2.0 迁移指南

    点击上方"朱小厮的博客",选择"设为星标" 回复"666"获取新整理的1000+GB资料 前提 本文档将帮助您把应用程序迁移到 Spring ...

  5. Spring Boot 2.0 都更新了什么

    Spring Boot 2.0 都更新了什么 2018 年 3 月 1 号 Spring Boot 2.0.0.RELEASE 正式发布,这是 Spring Boot 1.0 发布 4 年之后第一次重 ...

  6. Spring Cloud F Spring Boot 2.0 版本升级说明书

    Spring Boot 2.0 需要 Java 8 或更高版本.不再支持 Java 6 和 7 了 在 Spring Boot 2.0 中,许多配置属性被重新命名/删除,开发人员需要更新 依赖版本 以 ...

  7. Spring Boot 3.0.0 发布第一个里程碑版本M1,你的 Java 升到 17 了吗?

    欢迎关注方志朋的博客,回复"666"获面试宝典 ‍ ‍文章来源:程序猿DD‍ ‍ 2022年1月20日,Spring官方发布了Spring Boot 3.0.0的第一个里程碑版本M ...

  8. Java Spring Boot 2.0 实战之制作Docker镜像并推送到Docker Hub和阿里云仓库

    内容摘要:大规模集群快速部署Java应用,需要制作Docker镜像,本次课程详细介绍如何制作Java程序的Docker镜像文件,深入解析DockerFile核心参数,以及实践演练把我们制作的Docke ...

  9. 第64节:Java中的Spring Boot 2.0简介笔记

    Java中的Spring Boot 2.0简介笔记 spring boot简介 依赖java8的运行环境 多模块项目 打包和运行 spring boot是由spring framework构建的,sp ...

最新文章

  1. AWS攻略——使用CodeCommit托管代码
  2. php查找二维数组下标,PHP实现二维数组中的查找算法小结
  3. php网站首页点击更多时获取数据,jQuery+PHP实现点击按钮加载更多,不刷新页面加载更多数据!附:可用源码+demo...
  4. 测试进度需要考虑的问题
  5. 发那科冲压直线搬运机器人_行业应用 | 直线七轴软件配置
  6. HDMI光端机基本知识及相关品牌介绍
  7. leetcode714. 买卖股票的最佳时机含手续费(动态规划)
  8. 一个程序员的全部,并不是“技术”!知道为什么只能当码农吗?
  9. python 菜鸟:返回值_Python中的真实值和虚假值:详细介绍
  10. mysql 自定义函数 找不到表_mysql 自定义函数
  11. 中南民族大学计算机科学学院转专业,【通知】2018-2019学年学生转专业及专业分流工作...
  12. 从2D恢复出3D的数据
  13. 开启Spark history server
  14. 常用的SQL注入语句
  15. vmware mac os 10.11.6 安装xcode 8
  16. C语言BMP图像的读取、存入、水平镜像、竖直镜像、马赛克模糊处理、灰度二值化处理
  17. 【LOD for 3D Graphics】LOD技术背景调查
  18. Windows桌面应用程序(2-1-1st) 如何为桌面应用程序设计出色的用户体验
  19. python实现录屏录音小工具
  20. 小米打印机显示服务器出错,关于小米笔记本连接不上网络打印机的处理方法

热门文章

  1. memmove()/mmecpy()
  2. 这辆迷你摩托车,很酷!
  3. 内核抢占会让内核调度更好吗?
  4. linux platform 驱动模型分析
  5. Spring简化Java开发_spring如何简化java开发
  6. 华为路由器上有没有mac表_MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理...
  7. linux as5 启动mysql_Red Hat AS5进入救援模式的步骤
  8. mysql 用户管理表_Mysql—用户表详解(mysql.user)
  9. 数据库和ORMS:使用Tortoise ORM与数据库通信
  10. LeetCode 2201. 统计可以提取的工件(哈希)