JavaEE中的"Facet"是什么?

Rom*_*man 53 java ide terminology facet java-ee

我不仅想知道什么是Facet,还有什么是Facet'在物理层面'(据我所知,它不是一个单独的罐子,而是什么?)?

我也想知道在部署之后它如何影响我的应用程序.我会解释一下真实的例子:

我有2个方面(由IDE创建):Spring Facet和Web Facet(用于jsf).我将它部署到Tomcat,我的应用程序运行正常.

然后我(通过IDE)添加了一个方面 - JPA Facet.我重新部署了应用程序,它仍然工作正常:)

所以,我只是好奇这是什么,为什么我们需要它?

Bal*_*usC 55

这与Java EE无关.这与IDE有关.该术语本身与编程无关.

来自http://www.thefreedictionary.com/facet

fac·et(fst)n.

  1. 其中一个平面抛光表面切割在宝石上或天然存在于水晶上.
  2. 解剖学一种小而光滑的平坦表面,如骨骼或牙齿.
  3. 生物学复合眼睛的透镜状视觉单元之一,如昆虫.
  4. 作为主题的众多方面之一.参见阶段的同义词.

这是4.

在这种特定情况下,它只是项目中使用的一个方面,因此IDE可以在生成器,向导,自动包含库等方面拦截它.如果您添加例如JPA facet,那么您将获得更多选项来使用JPA进行IDE魔术.


Pas*_*ent 41

正如BalusC所说,这与Java EE无关,但与IDE有关.这允许以灵活的方式向项目添加"特征".

来自Eclipse用户IntelliJ IDEA Q&A(因为您提到了IDEA):

问: Facets - 它们的用途是什么?

答:简化项目配置.

Facets封装了对各种框架,技术和语言的支持.例如,要在项目中启用Spring,只需添加相应的构面即可.下载和配置所有库,您可以获得全方位的编码帮助,重构等.此外,代码模型也被识别,因此您完全不必担心任何配置问题.

在大多数情况下,您可以向项目添加多个相同类型的构面.例如,您可以拥有多个Web构面,用于将应用程序部署到不同的服务器或多个EJB构面,每个构面都有自己的EJB版本.(另请参阅项目配置.)

是的,Eclipse也使用"Facets":

替代文字

AFAIK,NetBeans没有(参见问:如何为我的项目配置Web框架?).