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&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引擎,弄了一天了,问题在哪呢?
相关推荐
在Spring 3.2中,你可以通过XML配置文件、注解或者基于Java的配置来定义bean的实例化、装配和初始化。这使得代码更加解耦,提高了组件之间的独立性。此外,Spring 3.2对自动扫描和组件注册进行了优化,使得在大型...
在Spring 3.2中,DI机制更加成熟,支持注解驱动的配置,如@Autowired和@Qualifier,使得代码更加简洁易读。 其次,Spring 3.2强化了AOP(面向切面编程)支持。AOP允许开发者定义“切面”,这些切面可以包含业务逻辑...
1. **核心容器**:Spring的核心在于其IoC(Inversion of Control)和DI(Dependency Injection)容器,这使得应用程序组件的依赖关系可以通过配置文件或注解来管理。在Spring 3.2中,增强了对Java配置的支持,使得...
总的来说,这个实例涵盖了Spring 3.2的IoC和事务管理、Hibernate 4.2的ORM能力、JPA 2.0的注解驱动模型以及Ehcache的缓存优化,演示了一个完整的Java企业级应用的开发流程。开发者可以从中学习到如何设置和配置这些...
1. **依赖注入(Dependency Injection, DI)**:这是Spring的核心特性,允许开发者在运行时通过配置文件或注解来管理对象及其依赖关系,而不是硬编码它们。这使得代码更加灵活,易于测试和维护。 2. **AOP(面向切...
在本文中,我们将深入探讨如何将Spring 4.0与MyBatis 3.2进行整合,特别是通过全注解的方式实现这一过程。Spring MVC是一个强大的MVC框架,而MyBatis是一个轻量级的持久层框架,两者结合可以提供高效、灵活的数据...
在Spring 3.2中,DI机制进一步优化,支持了基于注解的配置,使得代码更加简洁,减少了XML配置文件的使用。 其次,Spring 3.2加强了对Aspect-Oriented Programming(面向切面编程,AOP)的支持。AOP允许开发者定义...
5. **声明式事务管理**:Spring 3.2提供了一种声明式的方式来管理事务,只需在配置中指定哪些方法需要事务,无需在业务代码中显式调用开始和结束事务。 6. **Spring Expression Language (SpEL)**:SpEL是一种强大...
在源码中,你可以看到如何定义、配置和管理 Bean,以及如何通过注解来简化这些过程。 其次,AOP(面向切面编程)在 Spring 3.2 中得到了进一步加强。AOP 允许开发者通过定义切面来分离关注点,例如日志记录、事务...
Spring 3.2.x进一步推广了注解驱动的开发方式,降低了XML配置的需求。例如,@Component、@Service、@Repository和@Controller注解用于组件扫描和类型安全的依赖注入。 10. **Spring测试** Spring提供了测试框架,...
在3.2版本中,你可以通过XML配置、注解或基于Java的配置来实现DI。 其次,Spring的AOP模块允许开发者定义切面,将关注点(如日志、事务管理)与业务逻辑分离。3.2版本支持基于注解的切面,如`@Before`、`@After`、`...
在下载的"spring3.2"压缩包中,通常包含所有必需的Spring 3.2核心库以及相关模块的jar文件,例如spring-core、spring-context、spring-aop、spring-webmvc等。开发者可以根据具体项目需求选择导入相应的jar包。虽然...
5. **事务管理**:Spring提供了一种声明式事务管理,可以在XML配置文件中定义事务边界,或者在Java配置中使用`@Transactional`注解。这使得事务管理变得简单,无需在业务逻辑代码中显式管理。 6. **Mapper接口和XML...
在本项目中,Spring3.2被用来管理事务,通过注解的方式,可以简化事务配置,使得代码更加简洁。 3. **MyBatis**:这是一个持久层框架,它允许开发者将SQL语句直接写在XML配置文件或Java注解中,与ORM(对象关系映射...
在这个“Spring3.2.zip”压缩包中,包含的可能是Spring 3.2版本的全部或部分核心库和相关依赖。 首先,Spring框架的核心概念是依赖注入(Dependency Injection,简称DI),这是它解决复杂应用中组件之间耦合问题的...
在Spring AOP中,你可以使用AspectJ的注解或XML配置来定义切面,并利用AspectJ的编译器或加载器实现切面织入,提高性能。 接着是`aspectjweaver-1.7.1.jar`,它是AspectJ运行时的核心库。这个jar包包含了运行时代理...
Spring3.2与Hibernate4.0的整合是许多开发者在构建现代Java Web应用时会选择的技术栈,因为它们可以提供强大的依赖注入、事务管理以及持久化能力。下面将详细阐述这两个框架的整合过程及其相关知识点。 **Spring...
Spring 3.2.x中的AOP模块提供了强大的切面编程支持,可以用于日志记录、事务管理、权限控制等功能。通过`@Aspect`、`@Before`、`@After`等注解,开发者可以轻松定义和应用切面,实现代码的解耦和模块化。 三、数据...
3. **AOP增强**:Spring 3.2 提供了更强大的面向切面编程支持,如改进的通知(advice)类型,更灵活的切入点表达式,以及对JSR-250注解的支持。例如,`spring-aop.jar`包含了AOP框架的核心实现。 4. **数据访问**:...