我正在从Groovy源码中生成类,并将它们存储在 GroovyClassLoader
. 这些班级有 @Configuration
注释.它们在软件包 a.b.c.d.e
.我想让他们配置我的spring上下文。 我把线程上下文类加载器设置成这样的 GroovyClassLoader
.
我的Spring Boot应用程序被设置为扫描包。@ComponentScan("a.b.c")
.我可以确认Spring Boot确实使用了这个方法。GroovyClassLoader
并且这些生成的类可以通过这个类加载器来获取。
在类生成完成后,上下文被初始化,类被存储在 GroovyClassLoader
.
然而,Spring Boot却对这些类视而不见,我怀疑组件扫描会检查存储类的jars和目录,而这些生成的类在这些地方都没有实现。我怀疑组件扫描会通过存储类的jars和目录,而这些生成的类在这些地方都没有被实现?
我应该如何将这些生成的配置类提供给Spring Boot?
由于你在启动Spring Boot上下文之前已经有了生成的类,你可以通过使用以下方法注册它们 SpringApplicationBuilder.sources(Class<?>...)
方法。