是否可以使用CDI将参数注入方法调用?预期的行为与野外注射相似。查找首选生产商并使用该产品。如何使用CDI进行方法参数注入?
我想这样做是这样的:
public void foo(@Inject Bar bar){
//do stuff
}
或本(与减少混乱的语法时才):
public void foo(){
@Inject
Bar bar;
//do stuff
}
这句法是在两种情况下是非法的。有其他选择吗?如果不是 - 如果可能的话,这是否是一个坏主意?
谢谢
编辑 - 我可能已经做了我的要求不够明确的 - 我想能够直接调用该方法,使bar
变量容器的初始化。 JörnHorstmann和Perception的答案表明这是不可能的。
谢谢,感知。第一句话足以毁掉我的梦想:)“当它被实例化时”。我想到的应该是一个制作人的方法,而不是一个。我想我的用例不是专家组的意图。 – kostja
是的,不幸的是,该规范没有要求方法调用成为bean生命周期管理的一部分。因此,直接调用方法将* not *调用注入(类似于直接在对象上调用'new')。我不会感到惊讶,尽管如果方法注入成为下一个版本的规范。 – Perception