gpt4 book ai didi

java - Java如何找到规范实现?

转载 作者:搜寻专家 更新时间:2023-11-01 03:25:01 25 4
gpt4 key购买 nike

我不明白 java 如何知道任何规范的实现..

例如,我有一个带有 JSF 的 Spring 应用程序,如果我将 Mojarra jar 放在类路径上,该应用程序可以运行,但除了将它添加到类路径之外我什么也没做,所有这些都没有配置

如果我取出 Mojarra jar,我的应用程序将无法运行。

甚至,它如何在不做任何更改的情况下区分 Mojarra 或 MyFaces?

我只是想知道 Java 是如何找到实现的,而不是为什么如果我取出 jars 它就不起作用 ;)

最佳答案

通常 Java 规范类分为两部分:

  1. 一个 API 部分 (jar),主要包含通常由规范人员提供的接口(interface)。
  2. 包含这些接口(interface)的实现的实现部分(jar)。

上面的一个例子是JDBC:javax.sql.*类是由sun/oracle提供的,但是实现是在各自提供的JDBC驱动中完成的数据库供应商。在这种情况下,需要某种配置才能将 API“映射”到它的实现,因为您仅使用 API 类。

您使用 JSF 的示例有点不同,因为 MojarraMyFaces 都包含来自的 APIjavax.faces.*包,基本上都是同名的不同类。因此不需要配置,类在两个库中具有相同的名称,并且在需要时由类加载器从 MojarraMyFaces jar 中加载,无论哪个在类路径。

关于java - Java如何找到规范实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com