本文为博主辛苦总结,但愿本身之后返回来看的时候理解更深入,也但愿能够起到帮助初学者的做用.
转载请注明 出自 : luogg的博客园 谢谢配合!
事务:是逻辑上的一组操做,要么所有成功,要么所有失败spring
事务特性 :数据库
分层开发: 事务处于service层编程
Spring的事务管理分红两类:app
<!-- 引入外部属性文件. --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置c3p0链接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> </bean> <!-- 业务层类 --> <bean id="accountService" class="cn.itcast.spring3.demo4.AccountServiceImpl"> <!-- 在业务层注入Dao --> <property name="accountDao" ref="accountDao"/> </bean> <!-- 持久层类 --> <bean id="accountDao" class="cn.itcast.spring3.demo4.AccountDaoImpl"> <!-- 注入链接池的对象,经过链接池对象建立模板. --> <property name="dataSource" ref="dataSource"/> </bean> <!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 开启注解的事务管理 --> <tx:annotation-driven/>
@Transactional单元测试
所有使用注解很方便, 可是有些东西仍是须要在xml中写的,好比事务管理,链接池的配置.测试
注解总结 :url
去扫描注解 装配的Bean
<context:component-scan base-package="com.luogg.demo1"></context:component-scan>
spa
开启自动生成代理
<aop:aspectj-autoproxy/>
代理
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
单元测试注解code
@Transactional 声明事务