cdi相关内容

请解释CDI中@Produces注解

我已经阅读了 CDI 中的 @Produces 注释,但我不明白它的用法. 公共类资源{//使用资源生产者模式公开一个实体管理器@SuppressWarnings("未使用")@PersistenceContext@Produces私有 EntityManager em;//@Produces记录器 getLogger(InjectionPoint ip) {//字符串类别 = ip.getMe ..
发布时间:2021-12-22 21:55:43 Java开发

我应该使用@EJB 还是@Inject

我发现了这个问题:@Inject 有什么区别和@EJB 但我没有更明智.我之前没有用过 Java EE,也没有依赖注入的经验,所以我不明白我应该使用什么? @EJB 是一种旧的注入方式吗?在使用@Inject 使用新的CDI 框架时,使用此注解时是否由EJB 容器完成注入?这是区别吗?如果是这种情况,我应该使用 @Inject 而不是 @EJB 吗? 解决方案 @EJB 仅用于注入 ..
发布时间:2021-12-22 21:45:54 Java开发

使用 CDI @Inject 注入 Spring bean

我正在尝试将 Spring 上下文中定义的 bean 注入 CDI 托管组件,但没有成功.bean 没有被注入,而是在每次应该执行注入时创建一个新实例.我的环境是带有 JBoss Weld 的 Tomcat 7. Spring ApplicationContext 很简单: ...... ..
发布时间:2021-12-20 15:23:19 Java开发

从会话中删除特定的 CDI 托管 bean

我有一些 @SessionScoped CDI bean.以前都是JSF托管bean(从JSF托管bean改为CDI托管bean). 我正在执行以下操作,以删除在用户成功下在线订单后管理的某些会话范围的 JSF. MapsessionMap = context.getSessionMap();sessionMap.remove("cartBean");sessionMap.remove(" ..
发布时间:2021-12-20 15:20:30 其他开发

Field.get(obj) 在注入的 CDI 托管 bean 上返回所有空值,而手动调用 getter 返回正确的值

我试图通过反射从 JSF 页面的支持 bean 访问某些字段的值.问题是,当我使用 getter 时,我得到了正确的值,但是当我使用必要字段的 get(obj) 方法时,我总是得到一个返回的空值. 获取 beanObject: ELContext elcontext = FacesContext.getCurrentInstance().getELContext();Object bean ..
发布时间:2021-12-20 15:08:35 Java开发

@Inject 通过 URL 将参数传递给 CDI @Named bean

如果我不能将@ManagedProperty 注释与@Named 一起使用,因为@ManagedProperty 在CDI(?) 中不起作用,那么您如何将URL 中的参数传递给facelets 客户端?在我的代码中,我想通过“后退"和“前进"按钮将 javax.mail.getMessageNumber() 传递给 details.xhtml. 我知道应该使用@Inject,但是注入的是什么 ..
发布时间:2021-12-20 15:07:54 其他开发

支持 bean (@ManagedBean) 或 CDI Beans (@Named)?

我刚刚开始阅读Core JavaServer Faces,第 3 版,他们这样说(强调我的): 有两个独立的机制,CDI bean,这是一个历史意外和 JSF 托管 bean,用于可在 JSF 页面中使用的 bean.我们建议除非您的应用程序必须在普通 servlet 上工作,否则您使用 CDI bean跑者如Tomcat. 为什么?他们不提供任何理由.我一直在将 @ManagedBe ..
发布时间:2021-12-20 14:39:56 其他开发

识别和解决 javax.el.PropertyNotFoundException: Target Unreachable

当尝试像这样在 EL 中引用托管 bean #{bean.entity.property} 时,有时会出现 javax.el.PropertyNotFoundException: Target Unreachable 异常抛出,通常是在设置 bean 属性时,或者在调用 bean 操作时. 似乎有五种不同的消息: 目标无法访问,标识符 'bean' 解析为 null 目标不可达,'实 ..
发布时间:2021-12-20 14:36:03 其他开发

使用 CDI 在 Java EE 应用程序中获取对 EntityManager 的引用

我使用的是 Java EE 7.我想知道将 JPA EntityManager 注入应用程序范围 CDI bean 的正确方法是什么.您不能只使用 @PersistanceContext 注释注入它,因为 EntityManager 实例不是线程安全的.假设我们希望我们的 EntityManager 在每个 HTTP 请求处理开始时创建,并在 HTTP 请求处理完后关闭.我想到了两个选项: ..
发布时间:2021-12-14 18:27:09 Java开发

CDI:beans.xml,我把你放在哪里?

我使用 Weld 作为 CDI 实现.我的集成测试,当我在 src/test/java/META-INF/beans.xml运行良好>.这是一个简单的测试: 公共类 WeldIntegrationTest {@测试public void testInjector() {新焊接().初始化();//不应该抛出异常}} 现在当我运行 mvn clean install 时,我总是得到:缺少 MET ..
发布时间:2021-12-09 15:29:15 Java开发

为什么使用@PostConstruct?

在托管 bean 中,@PostConstruct 在常规 Java 对象构造函数之后调用. 为什么我要使用 @PostConstruct 来通过 bean 初始化,而不是使用常规构造函数本身? 解决方案 因为在调用构造函数时,bean 尚未初始化 - 即没有注入依赖项.在 @PostConstruct 方法中,bean 已完全初始化,您可以使用依赖项. 因为这是保证这个方 ..
发布时间:2021-11-25 13:17:42 Java开发