Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不';与基于xml的配置相比,t注释在重新编译、重新部署方面具有显著优势?_Java_Hibernate_Annotations - Fatal编程技术网

Java 不';与基于xml的配置相比,t注释在重新编译、重新部署方面具有显著优势?

Java 不';与基于xml的配置相比,t注释在重新编译、重新部署方面具有显著优势?,java,hibernate,annotations,Java,Hibernate,Annotations,我刚刚开始使用Java进行基于注释的编程。我使用基于xml的设置(hibernate)进行配置 在注释中,我们必须在java文件中编写注释,对吗。因此,如果我们需要更改某些内容,那么我们必须编辑java文件,再次编译它?这是我理解的正确方式吗 我读到了关于这个问题。但我的问题不限于冬眠 UDPATE(不应在任何有问题的地方使用write-one-run) 对于基于xml的配置,我们只需进行更改并重新启动应用程序,对吗 但是如果是注释,我们需要再次重新编译、重新部署和重新启动应用程序。这不是一个缺

我刚刚开始使用Java进行基于注释的编程。我使用基于xml的设置(hibernate)进行配置

在注释中,我们必须在java文件中编写注释,对吗。因此,如果我们需要更改某些内容,那么我们必须编辑java文件,再次编译它?这是我理解的正确方式吗

我读到了关于这个问题。但我的问题不限于冬眠

UDPATE(不应在任何有问题的地方使用write-one-run)

对于基于xml的配置,我们只需进行更改并重新启动应用程序,对吗


但是如果是注释,我们需要再次重新编译、重新部署和重新启动应用程序。这不是一个缺点吗?

我对Hibernate不太了解,但是在更改源代码后需要重新编译并不会破坏“写一次,在任何地方运行”,这只是为了参考(理论上的)编译后的Java应用程序的平台独立性。

一次编写,随时随地运行:意味着您可以在任何平台上运行,而无需为特定平台重做任何操作


这并不意味着您只需编写一次,如果您必须更改某些内容,它将在不重新编译类的情况下工作。

不,绝对不行

为了反映在源代码中所做的更改,您必须再次编译并运行代码,这对于所有编程语言都是正确的。注释或xml配置文件的唯一用途是简化项目的设置、调试和运行。即使您的项目(例如Spring或Hibernate)有xml/注释,您也必须重新编译项目以反映您的更改

“一次编写,随处运行”的范例是,当我们编译任何java代码时,它会转换成字节代码,可以在任何OS/平台上运行。您只需要安装JVM,它实际上理解并运行java代码


更新的问题答案:答案同样是否定的!这一点也不不利。从表面上看,它是一种防止编写更多代码的特性(这样您就可以更加专注于业务逻辑)。你必须为你的项目选择正确的组合。例如,最近我在Spring上工作,使用了
xml配置和注释。xml配置具有用户可配置的配置,其中as注释主要用于流控制。例如,在我的例子中,注释指示在创建bean之前或之后执行什么。大多数基于注释的代码也是如此。它用于告诉JVM指定的功能适用于指定的条件,但处理所需的数据是从xml配置中获取的。

即使使用xml映射,也必须在对xml进行更改后重新启动应用程序。您对“一次写入,在任何地方运行”的理解有点错误。把它当作编译一次在任何地方运行。