我对 DI 的 EE / CDI 比较陌生,所以也许你们中的一个可以为我的问题提供一些提示:
我有一个第 3 方课程,我想将其注入其他 bean。在春天只需要一些<bean>
声明,它就完成了。使用 cdi 它现在需要一个工厂类:
public class XProducer {
@Produces
@ApplicationScoped
public X createX(){
return new X();
}
}
不幸的是,X 的构造函数调用了相当昂贵的业务逻辑,每次 cdi 创建代理时都会调用它,但我无法更改 X 的行为。这给我留下了以下我不太喜欢的选项:
- 将 X 包装在一些丑陋的
Holder
类中, - 创建一些门面,并且必须将方法委托给
X
还有其他选择吗?