Spring Boot-仅在由属性启用的情况下加载Bean

我有一个带有不同子模块的

,其中还包含spring组件。在主要的Web模块中,我使用了子模块中70%的bean。是否启用了属性组(指向Bean),这取决于application.yml属性。

首先,我想创建Aspect-s,因此,当调用bean的方法(其属性未启用)时,然后引发异常。此解决方案可能有效,但随后我需要创建Aspect类,方法注释,导入越来越多的依赖项。

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

我会想象类似的东西@DependsOn,但是为此您需要提供一个Bean名称的名称,但是您不能使用此注释来使用yml属性。

其他容易的办法是@Bean@Import每个bean我想通过Spring容器进行管理,而不是@Import一切从一次子模块,但随后它是一个静态的设定,不能由阳明海运单属性来覆盖。

回答:

Spring在很早以前就引入了条件条件的概念。Spring

Boot在很大程度上使用了它来有条件地启用功能。它甚至创建了许多可以使用的条件规则。

这些规则之一是 规则的

。要使用此规则@ConditionalOnProperty,请在您的bean中添加一个注释。现在,仅在启用了上述属性或具有特定值的情况下才包括该属性。

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

以上是 Spring Boot-仅在由属性启用的情况下加载Bean 的全部内容, 来源链接: utcz.com/qa/412350.html

回到顶部