注解在重新编译、重新部署方面比基于xml的配置不是有显着的优势吗?

问题描述 投票:0回答:4

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

在注释中,我们必须在java文件中编写注释,对吧。那么,如果我们需要改变一些东西,那么我们就必须编辑java文件,再次编译它?这是我理解的正确方式吗?

我读到了这个关于 hibernate 中注释的优点的问题。但我的问题不仅限于休眠。

UDPATE(不应在有问题的任何地方使用一次写入运行)

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

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

java hibernate annotations
4个回答
1
投票

不,绝对不是!

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

“一次编写,随处运行”范例是,当我们编译任何 java 代码时,它会转换为可以在任何操作系统/平台上运行的字节代码。您所需要的只是安装了 JVM,它能够真正理解并运行 java 代码。

更新问题答案:答案再次是否定的!这根本不是一个缺点。从表面上看,这是一个防止编写更多代码的功能(以便您可以更加专注于业务逻辑)。您必须为您的项目选择正确的组合。例如,最近我在 Spring 上工作,我使用了

both xml configs and annotations
。 xml 配置具有用户可配置的配置,其中注释主要用于流量控制。例如,在我的例子中,注释规定了在创建 bean 之前或之后要执行的内容。大多数基于注释的代码也是如此。它用于告诉 JVM 指定的功能是针对指定的条件,但处理所需的数据是从 xml 配置中获取的。


1
投票

我对 Hibernate 了解不多,但是更改源代码后需要重新编译并不会破坏“一次编写,随处运行”,这仅是指已编译的 Java 应用程序的(理论上)平台独立性。


0
投票

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

这并不意味着您编写一次,如果您必须更改某些内容,它无需重新编译您的类即可工作。


0
投票

注解比XML更适合配置Spring吗?

基于注释的配置的引入提出了这样的问题:这种方法是否比 XML“更好”。简短的回答是“这取决于情况”。长的答案是,每种方法都有其优点和缺点,通常由开发人员决定哪种策略更适合他们。由于它们的定义方式,注释在其声明中提供了大量上下文,从而使配置更短、更简洁。然而,XML 擅长连接组件,而无需触及其源代码或重新编译它们。一些开发人员更喜欢将连接靠近源代码,而另一些开发人员则认为带注释的类不再是 POJO,而且配置变得分散且更难以控制。

© www.soinside.com 2019 - 2024. All rights reserved.