java11模块化springboot集成j2cache笔记

说明

最近学习了模块化,后面工作可能用到,使用springboot写了一个简单的demo

版本说明

  • springboot 2.6.1
  • mysql 8.0
  • redis 6
  • j2cache 2.8
  • mybatis-plus 3.4.3.4

遇到的问题

  1. 多个模块有相同的导入
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排除对应的依赖
  1. 反射问题
 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

  1. 数据库连接池问题
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和加完之后的日志然后加入相关的依赖重试

代码示例

参考

java9模块化
j2cache多级缓存框架

原文地址:https://www.cnblogs.com/javashare/p/15706817.html