与基于 xml 的配置相比,注释在重新编译、重新部署方面没有显着优势吗?



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

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

我读过这个关于hibernate中注释的优点的问题。但我的问题并不局限于冬眠。

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

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

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

不,绝对不是

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

"在任何地方写一次运行"的模式是,当我们编译任何java代码时,它都会转换为可以在任何操作系统/平台上运行的字节码。您所需要的只是安装的JVM,它可以真正理解并运行java代码。

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

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

write once-run anywhere:意味着您可以在任何平台上运行,而无需为特定平台重做任何操作。

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

相关内容

最新更新