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

来源:互联网 发布:xlsx密码破解软件 编辑:程序博客网 时间:2024/06/16 01:42

在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()方法上,事务就正常生效。

0 0
原创粉丝点击