上QQ阅读APP看书,第一时间看更新
5.1.2 Spring声明式事务
Spring配置文件中关于事务配置由3个组成部分,分别是DataSource、TransactionManager和代理机制。无论哪种配置方式,一般变化的只是代理机制部分。DataSource和TransactionManager这两部分只会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实现为SessionFactory,TransactionManager的实现为HibernateTransactionManager。
Spring声明式事务配置提供5种方式,而基于Annotation注解方式目前比较流行,所以这里只简单介绍基于注解方式配置Spring声明式事务。我们可以使用@Transactional注解在类或者方法上表明该类或者方法需要事务支持,被注解的类或者方法被调用时,Spring开启一个新的事务,当方法正常运行时,Spring会提交这个事务。具体例子如下:
这里需要注意的是,@Transactional注解来自org.springframework.transaction.annotation。Spring提供了@EnableTransactionManagement注解在配置类上来开启声明式事务的支持。使用@EnableTransactionManagement后,Spring容器会自动扫描注解@Transactional的方法和类。