当前位置: 首页 > 面试题库 >

人们为什么继续使用xml映射文件而不是注释?

赵高雅
2023-03-14
问题内容

我已经观察到一个奇怪的事实(基于hibernate标记中的问题),人们仍在积极使用xml文件而不是使用注释来指定其ORM(Hibernate /JPA)映射。

在某些情况下,这是必需的:

  • 您正在使用提供的类,并且想要映射它们。
  • 您正在编写一个API,其域类可以在没有JPA提供程序的情况下使用,因此您不想强制JPA / Hibernate依赖关系。

但是,我认为这些情况并不常见。

我的假设是:

  • 人们习惯于使用xml文件并且不习惯/不想学习使用注释方法。
  • Java 1.5之前的版本被强加到项目上,与它无关
  • 人们不知道注释是xml映射的全功能替代。
  • 支持传统系统,因此更改方法被认为是有风险的
  • 人们担心将注释(元信息)与其类混合使用是错误的。

还有其他可能的解释吗?


问题答案:

某些人认为域层和持久层是单独的关注点。使用纯XML方法会使两层保持尽可能松散的耦合。当域代码中嵌入了与持久性相关的代码时,使用注释会更紧密地将两层耦合在一起。



 类似资料:
  • 问题内容: 我已经观察到一个奇怪的事实(基于hibernate标记中的问题),人们仍在积极使用xml文件而不是使用注释来指定其ORM(Hibernate /JPA)映射。 在某些情况下,这是必需的: 您正在使用提供的类,并且想要映射它们。 您正在编写一个API,其域类可以在没有JPA提供程序的情况下使用,因此您不想强制JPA / Hibernate依赖关系。 但是,我认为这些情况并不常见。 我的假

  • 在Spring MVC中,类DefaultAnnotationHandlerMapping已被弃用。文档(http://docs . spring . io/spring/docs/current/javadoc-API/org/spring framework/web/servlet/MVC/annotation/defaultannotationhandlermapping . html)说:

  • 问题内容: 我有一个正在创建Hibernate映射的类,该类包含一个无法修改的旧对象,因此它没有必要的id字段来与Hibernate完美配合。我想将旧对象注释为新类的@Embedded字段,并为旧对象编写hbm.xml文件,并注意它是可嵌入的。有没有办法做到这一点?我见过的唯一的嵌入对象的文档指的是对对象进行注释,而不是使用XML。 我意识到我可以扩展旧对象并对其进行适当的注释,但是这些情况可能经

  • 问题内容: 我正在阅读Java JDBC规范(版本4),并且遇到了以下语句: DataSource-此接口在JDBC 2.0可选软件包API中引入。它优于DriverManager,因为它允许有关基础数据源的详细信息对应用程序透明 我想了解的是a 和a 之间的区别以及它为什么存在。我的意思是,上面的代码块说关于数据源的详细信息对于应用程序是透明的,但是是否不会在属性文件中外部化数据库属性(例如用户

  • 我试图理解的是和之间的区别,以及它存在的原因。我的意思是,上面的块表明关于数据源的细节对应用程序是透明的,但是在属性文件中外部化数据库属性如用户名、密码、url等,然后使用DriverManager是否会以同样的方式工作? 创建接口是否只是为了有一种返回可以池化的连接的通用方式?在Java EE中,应用程序服务器是否实现了这个接口,并且部署的应用程序是否具有对数据源的引用而不是连接?

  • 问题内容: 几天前,我开始与Hibernate合作时,我只是想知道:假设您正在从头开始一个项目。您是否将使用基于注释的映射或Hibernate映射文件来生成数据库模式。 据我了解,Hibernate映射文件提供了一些注解所没有的功能(至少不是完全等效的功能)。但是,我仍然感觉到,如今,使用Hibernate的项目宁愿基于注释而不是Hibernate映射文件。 有没有人选择过注解上的映射文件,如果是