Spring boot Spring引导-仅当bean由属性启用时才加载它

Spring boot Spring引导-仅当bean由属性启用时才加载它,spring-boot,import,javabeans,aop,depends,Spring Boot,Import,Javabeans,Aop,Depends,我有一个Spring启动应用程序,它有不同的子模块,其中也包含Spring组件。 在主web模块中,我使用了子模块中70%的bean。它取决于application.yml属性,属性组(指向bean)是否启用 首先,我想创建Aspect-s,所以当bean的方法(它的属性没有启用)被调用时,就会抛出一个异常。这个解决方案可以工作,但接下来我需要创建方面类、方法注释、导入越来越多的依赖项 所以我只是想知道,有没有其他更简单的解决方案来禁用bean,或者根本不加载到spring引导容器 我可以想象类

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

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

所以我只是想知道,有没有其他更简单的解决方案来禁用bean,或者根本不加载到spring引导容器

我可以想象类似于
@DependsOn
,但为此,您需要提供一个bean名称的名称,但不能使用此注释处理yml属性

另一个简单的解决方案是
@Bean
@Import
我希望由spring容器管理的每个Bean,而不是
@Import
从子模块一次导入所有内容,但它是一个静态设置,不能由yml的单个属性覆盖。

spring在相当长的一段时间之前就引入了。SpringBoot在很大程度上使用它来有条件地启用特性。它甚至创造了很多你可以使用的东西

其中一个规则是属性的条件规则。要使用此规则,请向bean添加注释。现在,仅当所述属性已启用或具有特定值时,才会包含该属性

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

@ConditionalOnProperty
添加到该bean。您考虑过使用限制加载bean的时间吗?
@ConditionalOnProperty
正是我需要的,谢谢@M.Denium Add作为答案,我会批准它。