JavaEE中的“Facet”是什么?

2022-08-31 16:24:20

我想知道不仅什么是Facet,而且什么是Facet“物理层面”(据我所知,它不是一个单独的罐子,但是什么?)?

我也想知道它在部署后如何影响我的应用程序。我将用真实的例子来解释:

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

然后我(通过IDE)添加了另一个方面 - JPA方面。我重新部署了应用程序和..它仍然工作得很好:)

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


答案 1

这与 Java EE 无关。这与 IDE 相关。该术语本身与编程无关。

http://www.thefreedictionary.com/facet

fac·et (fst) n.

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

这是4。

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


答案 2

正如BalusC所说,这与Java EE无关,而是与IDE相关。这允许以灵活的方式向项目添加“特征”。

来自IntelliJ IDEA Q&A for Eclipse Users(因为你提到了IDEA):

问:方面 - 它们的目的是什么?

一个:简化项目配置。

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

在大多数情况下,可以向项目中添加多个相同类型的方面。例如,可以有多个 Web 方面用于将应用程序部署到不同的服务器,也可以有多个 EJB 方面,每个方面用于自己的 EJB 版本。(另请参见项目配置。

是的,Eclipse也使用“Facets”:

alt text

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