@ejb 注解在 Java 中有什么作用?
请告诉Java中@ejb注解的确切含义。
@EJB 注释(以及@Resource、@WebServiceRef 等)有两个用途:
它在组件命名空间中声明一个引用。例如,@EJB(name="myEJB") 创建一个引用 java:comp/env/myEJB。如果您对字段进行注释但未指定名称,则会创建一个引用 java:comp/env/com.example.MyClass/myField。如果在字段或 setter 方法上声明了注解,则容器在创建组件时执行注入。解析引用的方式各不相同,与解析引用是为了查找(“java:comp/env/myEJB”)还是由于注入无关:
如果使用 EE 6+,则查找属性需要 JNDI 查找来解析目标。一些应用程序服务器支持 mappedName,它被指定为特定于供应商的。这通常通过执行查找来实现。应用程序服务器在部署时支持绑定。这通常通过执行查找来实现。如果没有提供其他绑定信息并且 bean 接口(beanInterface 或字段类型)仅由应用程序中的单个 EJB 实现,那么 EJB 规范要求它回退到那个。如果没有提供其他绑定信息并且#4 无法工作,一些应用程序服务器将尝试根据 ref 名称在服务器命名空间中执行查找(例如,java:comp/env/myEJB 可能会导致在服务器命名空间)。