Spring Boot开发者工具和ActiveJDBC集成

2019年10月14日 56点热度 0条评论

有什么方法可以将Spring boot devtools的自动重启功能与ActiveJDBCinstrumentation函数集成在一起?

每当模型或数据库发生更改时,也都需要提供工具,但是在Spring引导的devtools侧进行自动重启时生成的代码是由ActiveJDBC侧的工具与Java异步生成的。代码会发生,即使它与源代码上的类相同,也不会匹配,并会给出一个错误,指出无法进行强制转换。

例如。

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)

解决方案如下:

自我解决了。

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

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

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

该错误消息不包含activejdbc,因此我认为它与检测后生成的类文件有关。

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

src / main / resources / application.properties:

spring.devtools.restart.additional-exclude=src/main/java/dev/logue/sample/models/**