有没有办法集成Spring boot devtools的自动重启功能与 ActiveJDBC的instrumentation功能?
每次模型或数据库发生变化时,也需要提供instrumentation,但是Spring boot的devtools端自动重启时生成的代码是由ActiveJDBC端的instrumentation生成的与代码发生异步,即使是源上的同一个类,也不会匹配,并会给出无法转换的错误。
例如。
class dev.logue.sample.models.User cannot be cast to class dev.logue.sample.models.User (dev.logue.sample.models.User is in unnamed module of loader 'app'; dev.logue.sample.models.User is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader
我对Java不太熟悉,有什么方法可以同步这个过程吗?
我的环境:
openjdk version "11.0.6" 2020-01-14 LTS
OpenJDK Runtime Environment Zulu11.37+17-CA (build 11.0.6+10-LTS)
OpenJDK 64-Bit Server VM Zulu11.37+17-CA (build 11.0.6+10-LTS, mixed mode)
最佳答案
self 解决。
显然,spring-devtools.properties
应该显式加载 ActiveJDBC 生成的类。
src/main/resources/META-INF/spring-devtools.properties:
restart.include.activejdbc=/activejdbc-[\\w\\d-\.]+\.jar
错误信息中没有包含activejdbc,所以我认为与插桩后生成的class文件有关。
此外,为了以防万一,模型类在 application.properties
的 Spring devtools 扫描路径中被省略。
src/main/resources/application.properties:
spring.devtools.restart.additional-exclude=src/main/java/dev/logue/sample/models/**
关于java - Spring boot devtools 和 ActiveJDBC 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60928442/