Java EE 6 中的上下文和依赖注入

13年前

简介

Java Platform, Enterprise Edition (Java EE) 5 将具有惯例优于配置的依赖注入 (DI) 引入 Enterprise JavaBeans (EJB) 3.0 中。除了已有的 @EJB批注之外,Java EE 6 还引入了灵活、强大的 @Inject 依赖注入模型(JSR-330 和 JSR-299)。

配置 EJB 3 依赖注入

EJB 3 依赖注入的使用极其简单。使用 @EJB 批注即可注入一个已声明的 bean。将 MessageSession bean 注入 Servlet 3.0 中如下所示: 

@WebServlet(name="Messenger", urlPatterns={"/Messenger"})  public class Messenger extends HttpServlet {          @EJB      MessageSession session;  // }
注入的 MessageSession bean 可以是接口视图 bean,也可以是无接口视图 bean。只要仅存在接口的一个实现,便可注入该 bean 而无需任何形式。需要配置只是为了明确选择。

@Stateless  @Local(MessageSession.class)  public class PersistentMessageSession implements MessageSession{        @Override      public String getReceivedMessage() {          return "From persistent. Received at: " + new Date();      }  }   @Stateless  @Local(MessageSession.class)  public class TransientMessageSession implements MessageSession {  //...implementation  }