gpt4 book ai didi

spring-boot - Spring Boot - 仅在属性启用时才加载 bean

转载 作者:行者123 更新时间:2023-12-03 19:46:22 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序 具有不同的子模块,其中还包含 Spring 组件。
在主要的 web 模块中,我使用了子模块中 70% 的 bean。它取决于 application.yml 属性,是否启用了属性组(指向 bean)。

首先我想创建 Aspect-s,所以当一个 bean 的方法(它的属性没有启用)被调用时,然后抛出一个异常。这个解决方案可以工作,但是我需要创建 Aspect 类、方法注释、导入越来越多的依赖项。

所以我只是想知道,是否还有其他更简单的解决方案来禁用 bean,或者根本不加载到 Spring Boot 容器中?

我想像 @DependsOn ,但是为此您需要给出一个 bean 名称的名称,但是您不能使用此注释来处理 yml 属性。

其他简单的解决方案是 @Bean@Import我想由 spring 容器管理的每个 bean,而不是 @Import一切都来自子模块,但它是一个静态设置,不能被 yml 中的单个属性覆盖。

最佳答案

Spring 推出concept of conditionals很久以前。 Spring Boot 在很大程度上使用它来有条件地启用功能。它甚至创造了很多conditional rules你可以使用它。

这些规则之一是 以属性为条件规则。要使用此规则,请添加 @ConditionalOnProperty 对您的 bean 进行注释。现在,仅当所述属性已启用或具有特定值时才会包含在内。

@ConditionalOnProperty(name="your.property.name")

关于spring-boot - Spring Boot - 仅在属性启用时才加载 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52182570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com