use*_*882 2 java dependency-injection ejb jndi jakarta-ee
我想自动查找 EJB 实例并将其从 EJB 容器注入到列表中。例子:
@EJBs
List<MyCommonInterface> beans;
Run Code Online (Sandbox Code Playgroud)
或者
List<MyCommonInterface> beans;
public MyClass() {
beans = (List<MyCommonInterface>) context.findBeansByInterface(MyCommonInterface.class);
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
使用 JEE6,您可以使用实例http://docs.oracle.com/javaee/6/api/javax/enterprise/inject/Instance.html
这样您就可以使用注入的上下文,例如
@Inject
private Instance<ICommon> ejbs;
Run Code Online (Sandbox Code Playgroud)
你可以迭代它:
for(ICommon c : ejbs)
c.doSomeThing();
Run Code Online (Sandbox Code Playgroud)
这里有一个像这样的例子
public interface ICommon {
void doSomeThing();
}
Run Code Online (Sandbox Code Playgroud)
我在 @Singleton 中使用 SLSB 和 SFSB 对其进行了测试。
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |