java - 有条件地添加 Spring 应用程序同级

标签 java spring

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

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

我想做的(并且正在努力解决)是在设置了 spring 配置文件的情况下公开另一个上下文。

例如。如果需要,请打开管理 API。

看起来很简单,只需添加另一个带有 @Profile 注释的同级,就可以了。唯一的问题是,我在启动过程中遇到异常,因为如果配置文件未处于 Activity 状态,它无法找到任何 Web servlet bean。

我尝试在 if 语句中添加同级,但问题是我无权访问 spring 读取的属性,因为它尚未在应用程序的主函数中读取/初始化.

所以问题是,有什么办法可以解决这个问题,以便在配置文件设置后可以稍后添加 sibling 吗?

最佳答案

我会研究一下 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

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

如果您解决了,请发布您的解决方案:)

关于java - 有条件地添加 Spring 应用程序同级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58917102/

相关文章:

java - 如何使用 javafx 在 MySQL 数据库中保存和检索图像?

java - 使用 spring jpa 逐行获取数据库

java - 如何简化标签打印对齐配置?

java - Spring:JUnit-Test:未加载applicationContext

java - ye olde "org.hibernate.NonUniqueObjectException"...我被这个难住了

java - Mockito - 注入(inject)模拟列表

java - Eclipse 条件调试

java - Spring /hibernate/Oracle : ORA-02289 Sequence Does Not Exist?

java - 带有 Jersey 资源的 Sitemesh 和 Freemarker

java - 仅在运行 Spring 项目时获取 "Unsupported major.minor version 52.0 exception"