我正在尝试实现某种生产者工厂模式。
在注入派生类型时是否可以以某种方式触发基类型的生产者方法?
假设以下接口:
interface Service
interface AService extends Service
我想触发这个生产者:
@Produces
Service factory()
在这个注入点:
@Inject
AService srv;
目的是通过添加标记接口(在本例中为服务)来为不同类型的服务提供一个生产者工厂。
谢谢你帮助我
更新:
我尝试了 LightGuards 解决方案并添加@Typed
到 AService 实现中:
@Typed(Service.class)
class AServiceImplemenation implements AService
不幸的是,我收到了一个不满意的依赖错误。CDI 不会为注入点调用Service
生产者。AService
当然,出于类型安全的原因,这是有道理的。但是有没有办法强制调用Service
生产者?