java11模块化springboot集成j2cache笔记
说明
最近学习了模块化,后面工作可能用到,使用springboot写了一个简单的demo
版本说明
- springboot 2.6.1
- mysql 8.0
- redis 6
- j2cache 2.8
- mybatis-plus 3.4.3.4
遇到的问题
- 多个模块有相同的导入
Error occurred during initialization of boot layer
java.lang.module.ResolutionException: Modules slf4j.simple and logback.classic export package org.slf4j.impl to module spring.boot.starter.tomcat
解决
mvn dependency:tree
查看依赖,排除一个依赖即可
修改pom.xml排除对应的依赖
- 反射问题
Unable to make field private final byte[] java.lang.String.value accessible: module java.base does not "opens java.lang" to module fst
环境变量添加
--add-opens java.base/java.lang=fst
--add-opens java.base/java.net=fst --add-opens java.base/java.text=fst
- 数据库连接池问题
Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
模块module-info.java添加数据库连接池的导入
requires org.slf4j;
requires com.zaxxer.hikari;
代码正常运行步骤
- 不加module-info.java保证项目正常运行
- 加入module-info.java,将需要的依赖添加到module-info
- 启动程序根据错误错误添加需要的依赖
- 无法启动程序则对比不加module-info和加完之后的日志然后加入相关的依赖重试