首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA、CDI和JSF的框架和规范

JPA、CDI和JSF的框架和规范
EN

Stack Overflow用户
提问于 2015-05-22 18:19:36
回答 1查看 130关注 0票数 0

我读过并理解JPA、JSF、CDI只是规范。例如:

  • JPA - Hibernate,Toplink,JSR-000338
  • CDI - Spring - Google,PicoContainer,JSR299
  • IceFaces,RichFaces,JSR-000314

那么,如果它们只是一张纸上的规范,为什么包上写着“javax.persistence.”和“javax.faces”呢?

我认为甲骨文说:这是一篇论文,规则在哪里。如果您想要实现它,您必须使用我的包名(“javax.persistence.”、“javax.faces."),并且作为支付,您可以添加更多的功能,并且可以将您自己的包用于扩展的功能?

另外,如果我研究规范(jpa,cdi,jsf),我能使用任何框架吗?甚至,在没有他们的情况下构建我的软件?

请给我解释一下。

诚挚的问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-22 19:12:50

首先,Spring和Guice (也不是PicoContainer,AFAIK)都不是CDI实现。JBoss Weld是一个CDI实现。

第二。说明书不仅仅是一张纸。它也是一组接口和类,每个实现都必须正确实现或扩展,甚至包含不依赖于实现的核心功能(例如,请参见持久化 )。这些接口和类是javax包中的接口和类。它们是规范本身的一部分,实现可能不会修改它们。

实际上,标准的思想是,通过依赖规范中描述的规则,您应该能够使用实现规范的任何框架。不过,请注意,有些部分有时是未指定的,而且实现,即使没有bug,也可以做一些不同的事情。

理论上,在没有实现的情况下实现您的软件是可能的,只要您的软件的用户选择它想要的实现。但这是非常不现实的:您将让测试您的软件,从而为您的测试选择一个实现。如果您计划支持规范的几个实现,则必须测试所有这些实现,甚至可能需要进行调整。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30403408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档