什么是 CDI 豆?
2022-09-01 23:13:48
我有点困惑,我们称CDI豆为我们使用注释注入它们的豆子或我们在它们内部使用的豆子?@Inject
@Inject
我有点困惑,我们称CDI豆为我们使用注释注入它们的豆子或我们在它们内部使用的豆子?@Inject
@Inject
CDI Bean 是 CDI 可以自动实例化、管理和注入以满足其他对象的依赖关系的类。几乎任何Java类都可以由CDI管理和注入。
例如,PrintServlet 依赖于 Message 实例,并由 CDI 运行时自动注入它。
PrintServlet.java
@WebServlet("/printservlet")
public class PrintServlet extends HttpServlet {
@Inject private Message message;
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().print(message.get());
}
}
消息.java(此类是 CDI 豆)
@RequestScoped
public class Message {
@Override
public String get() {
return "Hello World!";
}
}
干杯!
CDI 不会引入一种称为 CDI Bean 的新 Bean 类型,它具有自己独特的组件模型。
CDI 提供了一组服务,这些服务可由其现有组件模型定义的受管 Bean 和 EJB 使用。
因此,CDI 只是一个 Bean(EJB 或 Managed Bean)处理 CDI 生命周期,具有 Context 和其他旧功能 DI 的范围。