zoukankan      html  css  js  c++  java
  • spring <mvc:annotation-driven /> 和 <tx:annotation-driven />的区别

    annotation-driven 这样的注解,其含义就是支持注解

    一般根据前缀 tx、mvc 等也能很直白的理解出来分别的作用:

    <mvc:annotation-driven>: 支持mvc注解(Controller中可以使用MVC的各种注解,例如因为这个标签创建了7个消息转换器HttpMessageConverter对象,Controller中可以使用使用@responsebody注解返回Object对象,否则只能返回String数据)
    <tx:annotation-driven/>:就是支持事务注解的(@Transactional,在Service实现类里写@Transactional就可以启用事物管理),有一个transaction-manager属性用来指定使用哪个事务管理器

    那么我们是否就可以在程序中所有被spring管理的类上都可以使用@Transactional注解了呢,在Service上可以使用@Transactional 注解这个是肯定的了,那总有些人也想弄明白能否在Controller 使用?答案显然是“不一定”的(与时间配置有关)

    原因是:<tx:annoation-driven/>只会查找和它在相同的应用上下文件中定义的bean上面的@Transactional注解,如果你把它放在Dispatcher的应用上下文中,它只检查控制器(Controller)上的@Transactional注解,而不是你services上的@Transactional注解。

    所以,可以确定的是我们是可以在Controller上使用事务注解的,但是我们不推荐这样做

    原文连接:https://www.cnblogs.com/alice-cj/p/10417773.html

  • 相关阅读:
    CentOS 5.5和5.6 安装后的网络配置
    CentOS 5.5 系统安全配置
    printk: messages suppressed
    “找不到出路的”vb6.0
    用户控件的烦扰
    rman恢复
    oracle数据字典
    oracle自关联表的子删父变功能实现
    oracle自治事务
    oracle表空间更名
  • 原文地址:https://www.cnblogs.com/luna-hehe/p/14972712.html
Copyright © 2011-2022 走看看