zhongjcbill 2014-05-14
前段时间做mybatis 3.2.7 + spring 3.2.8 + springMVC整合时,使用AOP切面配置事务,测试事务时发现程序抛出异常后事务没有回滚。
开始以为是AOP切面写错了,后来发现是springMVC扫描@Controller注解时影响到spring@Service没有被spring托管。
解决办法:
1. 配置springMVC base-package到controller包;
2. 配置spring配置文件不扫描带有@Controller注解类;
springMVC配置文件: <!-- mvc的注解驱动 --> <mvc:annotation-driven/> <context:component-scan base-package="com.app.manager.controller,com.app.source.controller"/>
spring配置文件: <!-- 扫描包中的注解 --> <context:component-scan base-package="com.kxt,com.app" scoped-proxy="interfaces"> <!-- 不扫描带有Controller注解的类 --> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>
@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象进行绑定。加上@ResponseBody注解,就不会走视图解析器,不会返回页面,目前返回的json数据。