@Resource注释中的自定义资源在运行时添加

时间:2009-11-18 17:04:24

标签: java java-ee ejb-3.0 jndi

我希望能够在无状态会话Bean中执行类似的操作

@Resource(name="mycustomthingie") private CustomClass stuff;

注入的值是context(speak:Thread)依赖。 我想如果我将ObjectFactory绑定到JNDI Context中,并在请求时提供正确的Object,那么这是可能的。

据我所知,为了实现这一点,我必须将资源添加到“java:comp”JNDI上下文中,但EE5规范显然不允许这样做。 是否存在允许我编写的子上下文,或者是否有其他方法可以获得类似的工作?

由于

彼得

1 个答案:

答案 0 :(得分:2)

根据InfoQ的this article,它总结了JSR-244的资源注入部分的总结(我在规范中的一个地方找不到这个):

  

注射仅限于第一次   Java中定义的类构造   EE平台,包括:

     
      
  • SessionContext object
  •   
  • DataSources object
  •   
  • UserTransaction
  •   
  • EntityManager interface
  •   
  • TimerService interface
  •   
  • 其他企业bean
  •   
  • 网络服务
  •   
  • 消息队列和主题
  •   
  • 资源适应的连接工厂
  •   
  • 环境条目仅限于String,Character,Byte,Short,   整数,长整数,布尔值,双精度数和   浮。
  •   
     

Java EE 5中的注入工具   不适用于任何POJO(即   经常被春天批评   社区)[...]

因此,如果您的CustomClass不是托管组件而不是简单的环境条目(似乎不是这种情况),我认为您不能注入它。