java - 按属性有条件地启动 bean 组
问题描述
在我的 Spring Boot 应用程序中,我有许多负责监控的 bean。今天,它们中的每一个都带有以下注释:
@ConditionalOnProperty(name="enable.monitor", havingValue="true")
这样监控是完全可配置的,我可以从属性文件中打开和关闭它。
在这个解决方案中我不喜欢的是我必须将这个长注释添加到每个 bean。我想知道是否有更优雅的方式来实现这种可配置的监控。也许通过用一些新的注释来注释所有的bean,比如说@Monitoring
,并以某种方式告诉spring根据属性启动它们,这可能吗?
欢迎任何其他建议。
解决方案
可以创建自己的自定义@Monitoring
注释,如下所示:
Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@ConditionalOnProperty(name="enable.monitor", havingValue="true")
public @interface Monitoring {
}
这可以在之后应用于其他 bean。
推荐阅读
- javascript - 排序功能在 10 处停止并混淆 javascript
- xamarin.forms - 如何为跨平台对齐 xamarin 表单中的工具栏项
- csv - 使用文件中的列名在 HIVE 中创建表
- python - 将链接列表转换为python数组
- markdown - 如何自定义在 Jekyll 中如何呈现 markdown 链接?
- performance - Application Insights 中的吞吐量卷查询
- c++ - 在对象数组中搜索字符串并返回相应值的函数
- sql-server - 避免两次调用同一个嵌套查询
- c# - C# ListBox如何从listbox中导出我传入的名字的文件
- javascript - 在源代码中使用 `index.d.ts` 声明文件