spring 事务不生效或者springmvc controller映射不到

在springmvc的web项目中,有两个配置文件:spring-config.xml(在web.xml中配置spring的监听器时配置的spring配置文件)和 "项目根目录-servlet.xml"文件。需要注意在这两个文件中配置的<context:component-scan base-package="com.handmessage.ups.management.module"/>元素加载的类的对象不在同一个spring的容器中(相关信息可以网上搜索查询相应资料)。所以要注意在这两个文件中加载不同类的配置。其中,如果需要事务控制的类,就需要配置在第一个配置文件中加载,如果是Controller的类(springmvc映射),必须配置在第二个文件中加载。其中第二个文件的配置会优先于第一个配置文件的配置。

比如有@Service注解的类需要控制事务,那么在第二个文件中配置如下即可:

<context:component-scan base-package="com.handmessage.ups.management.module">
            <context:exclude-filter type="annotation"  expression="org.springframework.stereotype.Service" />
</context:component-scan>



另外,事务没有指定在最外层方法,会无效,如:

在InventoryController中调用了InventoryService类的createAndDownloadData()方法,而createAndDownload()方法中又调用了createInfo()方法,实际上需要做事务控制的内容就在createInfo()方法中,但是,如果将@Transactional注解加在createInfo()方法上,事务却不生效;而把@Transactional加在createAndDownload()方法上,事务就正常生效。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值