【发布时间】:2021-09-08 11:40:30
【问题描述】:
我正在使用openapi生成器生成java-resteasy服务器存根代码模板,我的想法是使用生成器生成一些我永远不会修改的接口,我将用我自己的代码实现该接口。
但是,生成器已经生成了实现类,我编写了自己的实现类来扩展生成的实现类。所以现在有两个实现类,所以 CDI 抱怨歧义:
javax.enterprise.inject.AmbiguousResolutionException: Ambiguous dependencies for type openapidemo.gen.FruitsApiService and qualifiers [@Default]
当 CDI 尝试发现 bean 时,有什么方法可以将我自己的实现类标记为第一优先级?从而覆盖openapi生成的那个。
编辑:
根据@Negi 的回答,@Alternative 可能是在 CDI 搜索 bean 时将类指示为低优先级的一种方式,但是,就我而言,我想隐藏生成的代码而不修改它,因为我将在我的repo,我希望代码生成是幂等的。那么有没有办法用我自己的实现类将一个类注释为“优先级”,与@Alternative相反?
【问题讨论】:
标签: java dependency-injection resteasy openapi-generator