60

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

我也想知道部署后它如何影响我的应用程序。我将在实际示例中进行解释:

我有 2 个方面(由 IDE 创建):Spring Facet 和 Web Facet(用于 jsf)。我将它部署到 Tomcat 并且我的应用程序运行良好。

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

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

4

4 回答 4

59

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

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

fac·et (fst) n

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

是4。

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

于 2009-11-27T17:42:02.163 回答
45

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

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

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

A:精简项目配置。

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

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

是的,Eclipse 也使用“Facets”:

替代文字

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

于 2009-11-27T18:01:54.170 回答
2

正如EclipseIntellij文档中所解释的,Facets 定义了特征和要求(某些配置,特定于特定框架/技术)。

当您向项目添加构面时,该项目被配置为执行特定任务、满足特定要求或具有特定特征。

简而言之,您必须遵循某些结构来实现某些框架/技术。IDE 可以选择为您实现它,让您的生活更轻松。

为了详细说明它,我直接从 Eclipse 文档中给出了一些详尽的细节。这是Eclipse 特定的。

创建项目时,您将可以选择为您的项目实施 facet。例如,EAR 方面通过添加部署描述符和设置项目的类路径来设置项目以充当企业应用程序。

要向已存在的项目添加另一个方面,请完成以下步骤:

  1. 在 Java™ EE 透视图的 Project Explorer 视图中,右键单击该项目,然后选择 Properties。
  2. 在 Properties 窗口中选择 Project Facets 页面。此页面列出了项目中的各个方面及其版本。
  3. 单击修改项目并选中您希望项目具有的构面旁边的复选框。

注意:仅列出对项目有效的构面

有些方面可能无法协同工作。因此,您还可以从预设列表中选择预设的构面组合

  1. 通过单击当前版本号并从下拉列表中选择所需的版本号来选择构面的版本号。
  2. 可选:要删除构面,请清除其复选框。并非所有方面都可以删除。
  3. 可选:如果您想限制项目以使其与一个或多个运行时兼容,请单击运行时选项卡并选择您希望项目兼容的运行时。有关运行时的更多信息,请参阅为 J2EE 项目指定目标服务器。
  4. 单击 Finish 退出 Modify Faceted Project 对话框,然后单击 OK。

Facet 在 Eclipse 中也有版本号。只要不满足构面的要求,就可以更改构面的版本号。要更改项目中构面的版本,请完成以下步骤:

  1. 在 Java EE 透视图的 Project Explorer 视图中,右键单击该项目,然后选择 Properties。
  2. 在 Properties 窗口中选择 Project Facets 页面。此页面列出了项目中的各个方面及其版本。
  3. 单击修改项目,然后单击要更改的构面。
  4. 从构面名称旁边的下拉框中选择构面的版本。
  5. 单击 Finish 关闭 Modify Faceted Project 窗口,然后单击 OK。

您可以使用构面做更多的事情。我已经给出了示例,以便您更好地理解。有关详细信息,请查看您喜欢的 IDE 的文档。

于 2016-09-17T10:32:29.533 回答
1

Facets 是一个 Web 应用程序框架,它在服务器端利用简单的 MVC 架构,为客户端利用功能丰富的 Javascript 组件模型。这两部分旨在无缝集成用于非常动态的 AJAX 风格的应用程序

于 2013-07-05T10:56:49.500 回答