因为我的项目只有一个mvc-dispatcher-servlet.xml文件,没有applicationContext.xml,所以查了很多网上的资料,现总结一下:
1.mvc-dispatcher-servlet.xml中:
<context:component-scan base-package="com.shareApi"/>
2.我第一次竟然缺少jar包,不得不说很坑,pop.xml中<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <tx:annotation-driven transaction-manager="transactionManager" />
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException:
Unexpected exception parsing XML document from class path resource
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency>3.在class或者方法中注解,因为业务逻辑都在service中所以我是在serviceImpl中注解的:
@Transactional(rollbackFor = Exception.class)4.在发生异常是捕获异常,不能直接抛出异常,不然返回的信息就是访问异常:
手动捕获异常后,return
catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); userReturn.setCode(1); userReturn.setMessage("注册异常"); userReturn.setAccessToken(token); return userReturn;