如何将运行时生成的Groovy类提供给Spring Boot上下文配置过程

时间:2020-04-27 22:15:06

标签: spring spring-boot groovy classloader dynamic-class-creation

我正在从Groovy源生成类,并将它们存储在GroovyClassLoader中。这些类具有@Configuration批注。 它们在软件包a.b.c.d.e中。 我希望他们配置我的spring上下文。我将线程上下文类加载器设置为GroovyClassLoader

我的Spring Boot应用程序已设置为扫描软件包@ComponentScan("a.b.c")。 我可以确认Spring Boot确实在使用GroovyClassLoader,并且可以使用此类加载器来获取这些生成的类。

在类生成完成并将类存储在GroovyClassLoader中之后,上下文将初始化。

但是,Spring Boot忽略了这些类。我怀疑组件扫描通过存储类的jar和目录进行,而这些 这些地方中没有实现生成的类?

如何将这些生成的配置类提供给Spring Boot?

1 个答案:

答案 0 :(得分:0)

由于在启动Spring Boot上下文之前已经生成了类,因此可以使用SpringApplicationBuilder.sources(Class<?>...)注册它们 方法。