如何提供运行时生成的 groovy 类 到 Spring 引导上下文配置过程
How to supply runtime generated groovy classes to Spring Boot context configuration process
我正在从 Groovy 源生成 classes 并将它们存储在 GroovyClassLoader
中。这些 class 有 @Configuration
注释。
它们在包 a.b.c.d.e
中。
我希望他们配置我的 spring 上下文。 我将线程上下文 class 加载器设置为此 GroovyClassLoader
。
我的 Spring 引导应用程序设置为扫描包 @ComponentScan("a.b.c")
。
我可以确认 Spring Boot 确实在使用这个 GroovyClassLoader
并且这些生成的 classes 可以用这个 class 加载器获取。
上下文在 class 生成完成后初始化,classes 存储在 GroovyClassLoader
。
但是,Spring Boot 忽略了这些 classes。我怀疑组件扫描会通过存储 classes 的罐子和目录,而这些
生成的 classes 没有在这些地方具体化?
我应该如何将这些生成的配置 classes 提供给 Spring 启动?
由于在启动 Spring 引导上下文之前已经生成了 类,因此可以使用 SpringApplicationBuilder.sources(Class<?>...)
注册它们
方法。
我正在从 Groovy 源生成 classes 并将它们存储在 GroovyClassLoader
中。这些 class 有 @Configuration
注释。
它们在包 a.b.c.d.e
中。
我希望他们配置我的 spring 上下文。 我将线程上下文 class 加载器设置为此 GroovyClassLoader
。
我的 Spring 引导应用程序设置为扫描包 @ComponentScan("a.b.c")
。
我可以确认 Spring Boot 确实在使用这个 GroovyClassLoader
并且这些生成的 classes 可以用这个 class 加载器获取。
上下文在 class 生成完成后初始化,classes 存储在 GroovyClassLoader
。
但是,Spring Boot 忽略了这些 classes。我怀疑组件扫描会通过存储 classes 的罐子和目录,而这些 生成的 classes 没有在这些地方具体化?
我应该如何将这些生成的配置 classes 提供给 Spring 启动?
由于在启动 Spring 引导上下文之前已经生成了 类,因此可以使用 SpringApplicationBuilder.sources(Class<?>...)
注册它们
方法。