我大致知道这个结构的作用:它创建一个SomeType EJB并将对象注入到另一个EJB中。
@EJB(name="name1")
SomeType someVariable
现在我有一个类,这样开始:(我给所有的类级注释,甚至艰难,我想只有@EJB是相关的)
@Remote(SomeClass.class)
@Stateless(name="someName")
@EJBs({@EJB(name="name1",beanInterface=Type1.class),
@EJB(name="name2",beanInterface=Type2.class)})
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class X extends Y{
//code
@ EJB在这里做什么?他们可能从JNDI获取或创建“name1”…对象,但他们把结果放在哪里?我没有看到任何附近的.lookup调用,但代码库是巨大的,所以我不是很确定这一点。
奖金问题:我认为2交易注释只是重复默认值?
更新:多个人声称在这一点@EJBs是一个专有扩展。不是这样。它是java EE5的核心部分。参见the JavaDoc for details..它只是单个@EJB注释的容器。
我相信每个声明这些EJB注释的人都做查找。我只想知道这次查找的结果会发生什么。