问题标签 [jsr299]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
702 浏览

jsf - 为什么 WebBeans (JSR-299) 对话上下文与 JSF 相关联?

我正在阅读Web Beans 规范(JSR-299) 的公共审查草案,我想知道为什么它与 JSF 如此“紧密耦合”?

特别是对话上下文似乎只为 JSF 指定。

我理解,集成 JSF 和 EJB3 是 WebBeans 的目标。但是在更一般的层面上指定对话的概念是否没有意义(可能是一般的 Servlet 而不是特定的 Web 框架)?

这有什么技术原因吗?我认为这几乎不可能,因为 Seam(它是某种 WebBeans-Prototype)也支持 Wicket 并提供对话的概念。

我认为在 Servlet 级别上有一个对话范围会很有帮助(将对话范围的 bean 注入到 servlet 中)。据我了解,当前规范并非如此(参见第 8.5.4 章)。还是我在这里误解了某些东西...

0 投票
2 回答
2187 浏览

java - 焊接中外部(第 3 方)bean 的分辨率

我知道它仍然不是很流行,因为该规范是在几个月前发布的。

我还没有“安装”焊接,我只是在阅读,通过这个问题,我想确保我已经正确理解了这一点:

是否通过将 3rd-party jar 中的 bean 声明为<alternatives>您的beans.xml?

如果没有,如何使用 3rd 方库中没有的 bean beans.xml

beans.xml除非在他们的 jar 中,否则将 jar 放在类路径上是行不通的META-INF,对于 3rd 方 jar,您无法做到这一点。(请参阅Gavin King 关于该主题的帖子

0 投票
3 回答
3367 浏览

jakarta-ee - 如何为一个类实例化多个 CDI/Weld bean?

在 Spring 中,可以通过在 xml conf 中定义相应的 bean 来实例化任何类。还可以为具有不同参数的同一类实例化多个 bean .....

CDI 中是否也有这样的功能,即是否可以使用不同的初始化参数创建同一类的不同实例?

是否也可以在不更改类的情况下创建 bean....我的意思是不添加注释?

添加

让我举个例子。

如何实例化同一类的两个实例并用不同的字段值初始化它们?

0 投票
1 回答
1536 浏览

java - 如何使用 CDI 从外部库中注入 bean?

如何使用 JSR-299 CDI 从外部库注入(未注释)bean?

例子:

接口 X 及其实现来自第三方库。我如何决定使用哪个实现?

如果我有几个使用 X 接口但实现不同的类怎么办?

0 投票
2 回答
2764 浏览

spring - Spring和javax.enterprise.inject有什么关系?

我在这里阅读了一篇关于 Java EE 应用服务器的 Wikipedia 文章:

http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition#Java_EE_5_certified

它说 Java App Services 实现的 2 个 API 是:

这些都与应用程序上下文和依赖注入 JSR-299 有关。我以前从未听说过这些 API。Spring 是否实现了这些 API?如果他们这样做,对任何人来说都重要吗?

0 投票
1 回答
790 浏览

cdi - 我应该在哪里申报我的 CDI 资源?

JSR-299 (CDI) 引入了资源的(不幸命名)概念:http: //docs.jboss.org/weld/reference/1.0.0/en-US/html/resources.html#d0e4373

您可以将此命名法中的资源视为 Java EE 6 品牌的依赖注入(@EJB、@Resource、@PersistenceContext 等)和 CDI 的依赖注入品牌之间的桥梁。

一般的要点似乎是在某个地方(这将是我的问题的根源)您声明什么相当于一个桥接类:它包含使用 Java EE 的 @EJB 或 @PersistenceContext 或 @Resource 注释以及 CDI 的 @Produces 注释的字段注释。最终结果是 Java EE 6 注入了持久性上下文,例如,在需要它的地方,CDI 将注入的 PersistenceContext 识别为未来注入的源(由@Inject 处理)。

我的问题是:社区的共识是什么——或者是否有一个——关于:

  • 这个桥接类应该被命名为什么
  • 这个桥牌班应该住在哪里
  • 最好将所有这些东西本地化到一个类中还是制作几个类

...?

留给我自己的设备,我正在考虑声明一个名为的类CDIResources并将其用作将 Java EE 的 DI 与 CDI 的 DI 链接的唯一真实位置。许多示例都做了类似的事情,但我不清楚它们是否“只是”示例,或者这是否是一个好方法。

谢谢。

0 投票
2 回答
3001 浏览

java - Spring 能否理解 @Inject 将 Weld 替换为 JSR-299 实现?

我从几个网页中注意到 Spring 3.0 显然支持来自 JSR-330 的 @Inject。因为我们真的很想在我们的库中为 Web 应用程序和独立应用程序使用 JSR-299 语法进行依赖注入,并且有 Weld 的替代品,如果 Spring 能够做到这一点会很好。

作为 Spring 的新手,我尝试下载 Spring Framework 发行版并将所有 jar 放在 Eclipse 构建路径上。没有注入注释,所以我现有的使用 Weld 的测试项目没有编译。

这可以用Spring完成吗?我需要做什么才能让它运行?

(我知道 Guice 最终也会支持这个。它现在只在 SVN 中,如果有官方的 Spring 版本可以,那就更好了。)


可以办到。JSR-330 jar 必须单独下载,并且 cglib 来解析手动编写的 @Configuration 类,以及一个公共日志记录实现。

与 Weld 最大的区别似乎是接线需要手动编写而不是神奇地找到(有点麻烦,但可能会使应用程序更健壮),而且启动时间要少得多。我对 Spring 还是很陌生 - 有没有办法自动发现 @Configuration 类?

0 投票
4 回答
289680 浏览

java - 为什么使用@PostConstruct?

在托管 bean 中,@PostConstruct在常规 Java 对象构造函数之后调用。

为什么我要使用@PostConstructbean 来初始化,而不是常规构造函数本身?

0 投票
1 回答
611 浏览

tomcat - CDI /焊接网络应用程序的有用环境

我是焊接新手,并考虑使用 CDI(焊接)对 Web 应用程序有用的环境。我想使用 JSF 或 Wicket 进行演示,并使用 JPA/Hibernate 作为我的持久层(包括事务管理)。最明显的场景是使用带有 EJB3 的 JBoss 或 Glassfish 应用程序服务器,但是没有机会以合理的方式使用 tomcat 或其他“轻量级”servlet 容器吗?或者尝试开发一个没有 EJB/Seam 的 CDI-web 应用程序是荒谬的?
我对一些用户体验感兴趣!

0 投票
5 回答
7423 浏览

java - 如何使用 Weld 轻松注入字符串常量?

我们有一种情况,我们以 Map 的形式为正在运行的程序提供外部配置。我发现 JSR-330 依赖注入提供了一种更简洁的方式来在代码中使用该配置映射,而不是传递映射或使用 JNDI 来获取它。

让 JSR-330 实现自动填写此字段。

使用 Guice,我可以设置值

我希望能够在 Weld 中做同样的事情(将“server.username”绑定到例如“foobar”)并且我知道机制最有可能是 beans.xml,但我更喜欢简单的“将此地图提供给 Weld ,请”代码替代。什么是这样做的好方法?


编辑 2013-10-16:在研究了在编译时而不是运行时工作的 Dagger 之后,我发现我们通常每个程序有 10-20 个,我们可以@Provider接受每个配置字符串的方法,然后在配置中查找地图。这允许特定于方法的行为(包括默认值)、提供 javadoc 的能力以及将所有这些方法放在同一个类中的能力。它也适用于开箱即用的 Weld。我正在考虑在博客条目中写一个更完整的解释。