0

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

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

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

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

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

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

4

3 回答 3

1

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

于 2013-07-26T04:26:24.587 回答
1

不,绝对不是!

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

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

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

于 2013-07-26T04:33:29.410 回答
0

一次编写在任何地方运行:意味着您可以在任何平台上运行它,而无需为特定平台重做任何事情。

这并不意味着你只写一次,如果你必须改变一些东西,它会在不重新编译你的类的情况下工作。

于 2013-07-26T04:28:18.157 回答