- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!