Spring Boot中的事务管理

快速入门


在Spring Boot中,当我们使用了spring-boot-starter-jdbc或spring-boot-starter-data-jpa依赖的时候,框架会自动默认分别注入DataSourceTransactionManager或JpaTransactionManager。所以我们不需要任何额外配置就可以用@Transactional注解进行事务的使用。

我们以之前实现的《用spring-data-jpa访问数据库》的示例Chapter3-2-2作为基础工程进行事务的使用常识。

在该样例工程中(若对该数据访问方式不了解,可先阅读该文章),我们引入了spring-data-jpa,并创建了User实体以及对User的数据访问对象UserRepository,在ApplicationTest类中实现了使用UserRepository进行数据读写的单元测试用例,如下:

@RunWith(SpringJUnit4ClassRunner.class)

@SpringApplicationConfiguration(Application.class)

public class ApplicationTests {

@Autowired

private UserRepository userRepository;

@Test

public void test() throws Exception {

// 创建10条记录

userRepository.save(new User(“AAA”, 10));

userRepository.save(new User(“BBB”, 20));

userRepository.save(new User(“CCC”, 30));

userRepository.save(new User(“DDD”, 40));

userRepository.save(new User(“EEE”, 50));

userRepository.save(new User(“FFF”, 60));

userRepository.save(new User(“GGG”, 70));

userRepository.save(new User(“HHH”, 80));

userRepository.save(new User(“III”, 90));

userRepository.save(new User(“JJJ”, 100));

// 省略后续的一些验证操作

}

}

可以看到,在这个单元测试用例中,使用UserRepository对象连续创建了10个User实体到数据库中,下面我们人为的来制造一些异常,看看会发生什么情况。

通过定义User的name属性长度为5,这样通过创建时User实

你可能感兴趣的:(程序员,spring,boot,服务器,后端)