首页 > 解决方案 > 有条件地添加 Spring 应用程序兄弟

问题描述

我目前正在创建一个具有一堆应用程序上下文的 spring 应用程序。

SpringApplicationBuilder()
            .parent(Parent::class.java).web(WebApplicationType.NONE)
            .child(Child::class.java).web(WebApplicationType.SERVLET)
            .sibling(Sibling::class.java).web(WebApplicationType.SERVLET)

如果设置了弹簧配置文件,我想要做(并且正在努力)是公开另一个上下文。

前任。如果需要,请打开管理 api。

只需添加另一个带有注释的兄弟姐妹,这似乎很简单@Profile,并且这种工作方式。唯一的问题是我在启动期间遇到异常,因为如果配置文件不活动,它找不到任何 Web servlet bean。

我试图在 if 语句中添加兄弟姐妹,但问题是我无权访问 spring 读取的属性,因为它尚未在应用程序的主函数中读取/初始化。

所以问题是,如果设置了配置文件,有什么办法可以在以后添加兄弟姐妹?

标签: javaspring

解决方案


我会研究spring Boot的条件。您可以对大量其他事情进行条件处理,这些可以用于配置类和 Bean。

我倾向于直接查看 github,因为每个指南都有些愚蠢,因为它提供了一两个示例,但没有提供可用内容的列表。

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/condition

希望这有帮助,祝你好运!

如果你解决它,请发布你的解决方案:)


推荐阅读