我想为Spring Expression Language编写一个自定义BeanResolver来解析表达式中的EJB(例如"@MyBean.property=='example-value'"
)。如何在不进行JNDI-Lookup的情况下通过其名称检索bean?我是否必须为我选择的应用服务器编写一个插件(这将是glassfish)?
答案 0 :(得分: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
。