java - 如果没有定义其他生产者,则定义 @Default 生产者
问题描述
当我有一个在某些环境中提供的 bean 生产者时,我怎样才能注释我的可用,就@Default
好像没有其他可用一样?
给定生产者方法
@Produces
public Foo produce()
以及我无法控制的代码中的另一种生产者方法:
@Produces
public Foo produceIt()
两者都有一个隐式的 @Default 注释和冲突。但第二个并非在所有环境中都可用。
编辑:所以我添加了另一个限定符 @FooProducer 到第一个(我控制),这使它在第二个可用时工作 - 但这删除了隐式 @Default 所以没有生产者(类型匹配但没有 @Default found) 如果第二个不在 classath 上,则可用。
如果第二个生产者不可用,如何将第一个生产者注释为默认生产者,如果有另一个默认生产者不冲突?
解决方案
从Weld的文档看来,将您的生产者声明为 @Alternative 并使用任何 @Priority 全局启用它应该可以解决问题:
@Priority(100)
public class YourFactory {
@Produces @Alternative
public Foo produce()
}
推荐阅读
- java - 用于特定目的的 Spring Data 方法名称
- python - 如何在 python docx 中使用正则表达式?
- sharepoint - 如何避免在线共享点日历应用中的冲突?
- visual-studio-code - VSCode Remote-SSH 无法连接到我的服务器
- java - Java中super关键字的使用
- arduino - 带有压力传感器 MS5803-05BA 的 SPI 问题 Arduino Mega
- html - 动画元素上的 CSS 悬停变换
- excel - 在excel vba中使用表单文本框进行重复检查
- command-line - azure devops 本地代理管道权限被拒绝
- go - 谷歌驱动 API v3。导出文档并保留评论