0

有没有办法将Spring boot devtools的自动重启功能与ActiveJDBC检测功能集成?

每次模型或数据库发生变化时也需要提供检测,但是在 Spring boot 的 devtools 端有 Auto-Restart 时生成的代码是由 ActiveJDBC 端的检测生成的,与代码发生,即使是源上的同一个类,也不会匹配,会报错不能强制转换。

例如。

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)
4

1 回答 1

0

自己解决了。

显然,spring-devtools.properties应该显式加载由 ActiveJDBC 生成的类。

src/main/resources/META-INF/spring-devtools.properties:

restart.include.activejdbc=/activejdbc-[\\w\\d-\.]+\.jar

报错信息中没有包含activejdbc,所以我以为和instrumentation后生成的class文件有关。

此外,以防万一,模型类从 Spring devtools 扫描路径中省略application.properties

src/main/resources/application.properties:

spring.devtools.restart.additional-exclude=src/main/java/dev/logue/sample/models/**
于 2020-04-08T08:54:35.127 回答