Spring事务注释与Tx命名空间:哪一个使用得更多?

Spring事务注释与Tx命名空间:哪一个使用得更多?,spring,transactions,Spring,Transactions,我正在研究这两种方法,以便在Spring应用程序中包含事务。至于现在,我更喜欢使用注释,而不是tx名称空间。原因是它在某种程度上消除了XML/复杂性。但这只是我的观点 我还没有机会看到当前的Spring从业者在事务中使用了什么。哪一种方法现在是首选方法,为什么 换句话说,每种方法的优缺点是什么,最终证明使用一种方法优于另一种方法是合理的 // 赞成的意见 代码中没有Spring依赖项 非常灵活,例如,使所有带有get前缀的方法都是事务性的,但都是只读的 轻松地将事务划分应用到范围广泛的bean

我正在研究这两种方法,以便在Spring应用程序中包含事务。至于现在,我更喜欢使用注释,而不是tx名称空间。原因是它在某种程度上消除了XML/复杂性。但这只是我的观点

我还没有机会看到当前的Spring从业者在事务中使用了什么。哪一种方法现在是首选方法,为什么

换句话说,每种方法的优缺点是什么,最终证明使用一种方法优于另一种方法是合理的

/
/
赞成的意见
  • 代码中没有Spring依赖项
  • 非常灵活,例如,使所有带有
    get
    前缀的方法都是事务性的,但都是只读的
  • 轻松地将事务划分应用到范围广泛的bean中
欺骗
  • 繁琐且难以维护的XML
  • 更多XML
  • …甚至更多的XML
@Transactional
赞成的意见
  • 非常简单,只需在类或方法上添加注释即可
  • 一行XML(甚至没有使用
    @EnableTransactionManagement
    )就可以了
欺骗
  • 代码中的Spring依赖项
  • 不可能应用更一般的规则,例如:包中以
    Dao结尾的所有类
/
/
赞成的意见
  • 代码中没有Spring依赖项
  • 非常灵活,例如,使所有带有
    get
    前缀的方法都是事务性的,但都是只读的
  • 轻松地将事务划分应用到范围广泛的bean中
欺骗
  • 繁琐且难以维护的XML
  • 更多XML
  • …甚至更多的XML
@Transactional
赞成的意见
  • 非常简单,只需在类或方法上添加注释即可
  • 一行XML(甚至没有使用
    @EnableTransactionManagement
    )就可以了
欺骗
  • 代码中的Spring依赖项
  • 不可能应用更一般的规则,例如:包中以
    Dao结尾的所有类

我更喜欢使用注释来标记事务,不是因为易于配置,也不是因为担心与Spring的耦合的纯度,而是因为通常情况下,方法中的代码在没有事务的情况下无法正常工作:注释指示实现的某些功能,而不是代码的管理方式(属于Spring配置文件).

我更喜欢使用注释来标记事务,不是因为易于配置,也不是因为担心与Spring的耦合的纯度,而是因为通常情况下,方法中的代码在没有事务的情况下无法正常工作:注释指示实现的某些功能,而不是代码的管理方式(属于Spring配置文件)。

我理解。但是你认为有时候使用tx会更有效吗?此外,在单个项目中,实践者使用这两种方法是否很常见?我个人更喜欢注释,只是因为现在的简单性;为了摆脱XML(即切入点),我一直在尽我所能。但我还想确保我的研究是针对所谓的最佳实践的。@user1079776:最佳实践是灵活的,因为它们通常包括大量的“嗯,这取决于你实际在做什么”。这些东西的注释的问题是,在进行测试时,您无法如此轻松地更改它们;这时,XML配置就有了自己的功能。但具体是交易?注释在这里非常有意义,因为这样可以很容易地识别应用事务方面的位置。(当涉及到维护时,显式优于隐式。)我理解。但是你认为有时候使用tx会更有效吗?此外,在单个项目中,实践者使用这两种方法是否很常见?我个人更喜欢注释,只是因为现在的简单性;为了摆脱XML(即切入点),我一直在尽我所能。但我还想确保我的研究是针对所谓的最佳实践的。@user1079776:最佳实践是灵活的,因为它们通常包括大量的“嗯,这取决于你实际在做什么”。这些东西的注释的问题是,在进行测试时,您无法如此轻松地更改它们;这时,XML配置就有了自己的功能。但具体是交易?注释在这里非常有意义,因为这样可以很容易地识别应用事务方面的位置。(在维护方面,显式优于隐式。)