0 0

老问题,Spring 3.2 全注解 配置事务 ,事务不会滚0

Service 层:

@Service
@Transactional
public class UserServiceImpl implements UserService {

	@Autowired
	private UserDao userDao;
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	public UserServiceImpl(){
		System.out.println("UserServiceImpl constructor");
	}
	@Override
	@Transactional(rollbackFor=Exception.class)
	public void addCategory() {
		System.out.println(this);
		// TODO Auto-generated method stub
		userDao.insertCategory("1233");
		throw new RuntimeException("");
		//System.out.println("test");
	}

}

 

throw new RuntimeException后,数据还是插入了,没有回滚。

 

DAO层:

@Repository
public class UserDaoImpl extends BaseDaoImpl implements UserDao {

	public UserDaoImpl(){
		System.out.println("userDaoimpl constuctor");
	}
	@Override
	public void insertCategory(String name) {
		// TODO Auto-generated method stub
		this.getSqlMapClientTemplate().insert("Category.insertCategory",name);
	}

}

 

配置文件:

	<bean id ="dataSource" class ="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/posstore?autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull" />
        <property name="username" value="root" />
        <property name="password" value="root"/>
    </bean>

    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:sqlmap-config.xml"/>
    </bean>
    
    

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
    <property name="dataSource" ref="dataSource"></property>  
</bean>  
<!-- 声明使用注解式事务 -->  
<tx:annotation-driven transaction-manager="transactionManager"/> 
 

 不知道是什么原因,dao 是  ibatis实现 ,数据库是mysql innodb引擎,弄了一天了,问题在哪呢?

 

2014年6月03日 13:49

5个答案 按时间排序 按投票排序

0 0

不是抛出异常吧,应该是捕获异常吧

2014年6月06日 11:30
0 0

如楼上所说,是不是没有配置AOP

2014年6月05日 14:25
0 0

你尝试下不同的Exception

2014年6月03日 18:36
0 0

mysql存储引擎类型?是否有用hibernate,如果有换HibernateTransactionManager试试

2014年6月03日 18:07
0 0


<!--通过注解的方式事务代理-->
<tx:annotation-driven transaction-manager="transactionManager"
proxy-target-class="true"
order="1"/>

<!--代理配置:对所有*Service结尾的class进行事物管理-->
<aop:config proxy-target-class="true">
<aop:pointcut id="serviceOperation" expression="execution(* com.dm..service..*Service.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" order="2"/>
</aop:config>

2014年6月03日 15:16

相关推荐

    Spring3.2包和配置文件

    在Spring 3.2中,你可以通过XML配置文件、注解或者基于Java的配置来定义bean的实例化、装配和初始化。这使得代码更加解耦,提高了组件之间的独立性。此外,Spring 3.2对自动扫描和组件注册进行了优化,使得在大型...

    spring3.2源码包

    在Spring 3.2中,DI机制更加成熟,支持注解驱动的配置,如@Autowired和@Qualifier,使得代码更加简洁易读。 其次,Spring 3.2强化了AOP(面向切面编程)支持。AOP允许开发者定义“切面”,这些切面可以包含业务逻辑...

    spring3.2参考文档

    1. **核心容器**:Spring的核心在于其IoC(Inversion of Control)和DI(Dependency Injection)容器,这使得应用程序组件的依赖关系可以通过配置文件或注解来管理。在Spring 3.2中,增强了对Java配置的支持,使得...

    Spring3.2_Hibernate4.2_JPA2全注解实例

    总的来说,这个实例涵盖了Spring 3.2的IoC和事务管理、Hibernate 4.2的ORM能力、JPA 2.0的注解驱动模型以及Ehcache的缓存优化,演示了一个完整的Java企业级应用的开发流程。开发者可以从中学习到如何设置和配置这些...

    spring3.2 源码 jar包

    1. **依赖注入(Dependency Injection, DI)**:这是Spring的核心特性,允许开发者在运行时通过配置文件或注解来管理对象及其依赖关系,而不是硬编码它们。这使得代码更加灵活,易于测试和维护。 2. **AOP(面向切...

    Spring4.0与mybatis3.2整合全注解实现

    在本文中,我们将深入探讨如何将Spring 4.0与MyBatis 3.2进行整合,特别是通过全注解的方式实现这一过程。Spring MVC是一个强大的MVC框架,而MyBatis是一个轻量级的持久层框架,两者结合可以提供高效、灵活的数据...

    spring3.2jar包

    在Spring 3.2中,DI机制进一步优化,支持了基于注解的配置,使得代码更加简洁,减少了XML配置文件的使用。 其次,Spring 3.2加强了对Aspect-Oriented Programming(面向切面编程,AOP)的支持。AOP允许开发者定义...

    Spring 3.2 Eclipse 源文件

    5. **声明式事务管理**:Spring 3.2提供了一种声明式的方式来管理事务,只需在配置中指定哪些方法需要事务,无需在业务代码中显式调用开始和结束事务。 6. **Spring Expression Language (SpEL)**:SpEL是一种强大...

    spring3.2 编译后源码

    在源码中,你可以看到如何定义、配置和管理 Bean,以及如何通过注解来简化这些过程。 其次,AOP(面向切面编程)在 Spring 3.2 中得到了进一步加强。AOP 允许开发者通过定义切面来分离关注点,例如日志记录、事务...

    spring3.2.x源码 for Eclipse

    Spring 3.2.x进一步推广了注解驱动的开发方式,降低了XML配置的需求。例如,@Component、@Service、@Repository和@Controller注解用于组件扫描和类型安全的依赖注入。 10. **Spring测试** Spring提供了测试框架,...

    spring3.2源码-官方原版.zip

    在3.2版本中,你可以通过XML配置、注解或基于Java的配置来实现DI。 其次,Spring的AOP模块允许开发者定义切面,将关注点(如日志、事务管理)与业务逻辑分离。3.2版本支持基于注解的切面,如`@Before`、`@After`、`...

    spring 3.2jar包

    在下载的"spring3.2"压缩包中,通常包含所有必需的Spring 3.2核心库以及相关模块的jar文件,例如spring-core、spring-context、spring-aop、spring-webmvc等。开发者可以根据具体项目需求选择导入相应的jar包。虽然...

    spring3.2与Ibatis整合

    5. **事务管理**:Spring提供了一种声明式事务管理,可以在XML配置文件中定义事务边界,或者在Java配置中使用`@Transactional`注解。这使得事务管理变得简单,无需在业务逻辑代码中显式管理。 6. **Mapper接口和XML...

    struts2.3+spring3.2+mybatis3.1整合注释行事务处理(含jar包)

    在本项目中,Spring3.2被用来管理事务,通过注解的方式,可以简化事务配置,使得代码更加简洁。 3. **MyBatis**:这是一个持久层框架,它允许开发者将SQL语句直接写在XML配置文件或Java注解中,与ORM(对象关系映射...

    Spring3.2.zip

    在这个“Spring3.2.zip”压缩包中,包含的可能是Spring 3.2版本的全部或部分核心库和相关依赖。 首先,Spring框架的核心概念是依赖注入(Dependency Injection,简称DI),这是它解决复杂应用中组件之间耦合问题的...

    Spring3.2 AOP extra jar

    在Spring AOP中,你可以使用AspectJ的注解或XML配置来定义切面,并利用AspectJ的编译器或加载器实现切面织入,提高性能。 接着是`aspectjweaver-1.7.1.jar`,它是AspectJ运行时的核心库。这个jar包包含了运行时代理...

    spring3.2+hibernate4.0整合

    Spring3.2与Hibernate4.0的整合是许多开发者在构建现代Java Web应用时会选择的技术栈,因为它们可以提供强大的依赖注入、事务管理以及持久化能力。下面将详细阐述这两个框架的整合过程及其相关知识点。 **Spring...

    spring-framework-3.2.x.zip

    Spring 3.2.x中的AOP模块提供了强大的切面编程支持,可以用于日志记录、事务管理、权限控制等功能。通过`@Aspect`、`@Before`、`@After`等注解,开发者可以轻松定义和应用切面,实现代码的解耦和模块化。 三、数据...

    spring3.2 各种jar

    3. **AOP增强**:Spring 3.2 提供了更强大的面向切面编程支持,如改进的通知(advice)类型,更灵活的切入点表达式,以及对JSR-250注解的支持。例如,`spring-aop.jar`包含了AOP框架的核心实现。 4. **数据访问**:...

Global site tag (gtag.js) - Google Analytics