Springboot 整合mongodb事务
时间: 2023-07-04 08:03:56 浏览: 178
在 Spring Boot 中,MongoDB 支持事务管理,可以使用 `MongoTemplate` 或者 `MongoRepository` 来进行事务管理。
首先,需要在项目中添加 MongoDB 的事务依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
```
接着,需要在启动类上添加 `@EnableMongoRepositories` 注解:
```java
@SpringBootApplication
@EnableMongoRepositories
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
然后,在需要进行事务管理的方法上添加 `@Transactional` 注解即可:
```java
@Service
public class UserService {
@Autowired
private MongoTemplate mongoTemplate;
@Transactional
public void createUser(User user) {
mongoTemplate.insert(user);
}
@Transactional
public void updateUser(User user) {
mongoTemplate.save(user);
}
@Transactional
public void deleteUser(String id) {
mongoTemplate.remove(Query.query(Criteria.where("id").is(id)), User.class);
}
}
```
在上述代码中,`@Transactional` 注解用来开启事务管理。如果在事务管理过程中发生异常,事务会自动回滚。
需要注意的是,MongoDB 的事务只支持副本集和分片集群模式,不支持单节点模式。因此,在使用事务时,需要确保 MongoDB 是运行在副本集或者分片集群模式下的。
阅读全文
相关推荐


















