2

我想为 Spring 表达式语言编写一个自定义BeanResolver来解析表达式中的 EJB(例如"@MyBean.property=='example-value'")。如何在不执行 JNDI-Lookup 的情况下按名称检索 bean?我是否必须为我选择的应用程序服务器编写一个插件(这将是 glassfish)?

4

1 回答 1

2

EE 注入和 JNDI 查找是所有 EJB 的入口点;没有其他标准方法可以获取 EJB 的实例。如果您使用的是 EJB 3.1,则 、 和 中的绑定java:global定义java:app良好java:module,开发人员无法更改。

java:global/MyApp/MyModule/MyBean!com.example.MyIntf
java:app/MyModule/MyBean!com.example.MyIntf
java:module/MyBean!com.example.MyIntf

这实际上是按名称定位 EJB。(它确实需要 JNDI,但是从您的描述中并不清楚为什么 JNDI 本身会有问题,尽管我确实理解为什么绑定是一个问题。)如果您知道 EJB 只支持一个接口,您可以省略!com.example.MyIntf.

于 2012-11-10T16:09:16.353 回答