Spring Boot Tutorial
Spring Boot - Software Setup and Configuration (STS/Eclipse/IntelliJ)
Prerequisite (Spring Core Concepts)
Spring Boot Core
Spring Boot with REST API
Spring Boot with Database and Data JPA
Spring Boot with Kafka
Spring Boot with AOP
Creating CRUD operations with MongoDB in Spring Boot is quite similar to using relational databases with Spring Data JPA. However, instead of JPA, you'll use Spring Data MongoDB. Here's how you can set it up:
Firstly, add the necessary dependencies to your pom.xml
:
<!-- Spring Boot Starter Data MongoDB --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
Specify MongoDB properties in application.properties
or application.yml
:
# For local MongoDB instance spring.data.mongodb.uri=mongodb://localhost:27017/mydatabase
Instead of @Entity
, use @Document
for MongoDB:
@Document(collection = "users") public class User { @Id private String id; private String name; private String email; // Getters, Setters, Constructors, hashCode, equals, toString }
Just like JPA, Spring Data MongoDB offers a MongoRepository
:
public interface UserRepository extends MongoRepository<User, String> { }
The service layer remains largely the same:
@Service public class UserService { @Autowired private UserRepository userRepository; public List<User> getAllUsers() { return userRepository.findAll(); } public User getUserById(String id) { return userRepository.findById(id).orElse(null); } public User createUser(User user) { return userRepository.save(user); } public User updateUser(String id, User user) { if (userRepository.existsById(id)) { user.setId(id); return userRepository.save(user); } else { return null; } } public void deleteUser(String id) { userRepository.deleteById(id); } }
The controller remains the same as the previous CRUD example:
@RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping public List<User> getAllUsers() { return userService.getAllUsers(); } @GetMapping("/{id}") public User getUserById(@PathVariable String id) { return userService.getUserById(id); } @PostMapping public User createUser(@RequestBody User user) { return userService.createUser(user); } @PutMapping("/{id}") public User updateUser(@PathVariable String id, @RequestBody User user) { return userService.updateUser(id, user); } @DeleteMapping("/{id}") public ResponseEntity<Void> deleteUser(@PathVariable String id) { userService.deleteUser(id); return ResponseEntity.noContent().build(); } }
Once you've set up all of these components, you'll have a basic CRUD API backed by MongoDB in a Spring Boot application. Remember to run a MongoDB instance, either locally or via a cloud provider, so your Spring Boot application can connect to it.
MongoDB repository in Spring Boot CRUD operations:
MongoRepository
for CRUD operations.public interface UserRepository extends MongoRepository<User, String> { // Custom query methods if needed }
RESTful CRUD operations with Spring Boot and MongoDB:
@RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserRepository userRepository; // Implement CRUD operations using UserRepository }
Connecting Spring Boot to MongoDB for CRUD operations:
application.properties
or application.yml
.application.properties
):spring.data.mongodb.host=localhost spring.data.mongodb.port=27017
MongoTemplate for custom MongoDB CRUD operations in Spring Boot:
MongoTemplate
for custom MongoDB CRUD operations.@Autowired private MongoTemplate mongoTemplate; public void customMongoOperation() { // Implement custom MongoDB operation using mongoTemplate }
Handling relationships in Spring Boot MongoDB CRUD operations:
@DBRef
or other annotations.public class Order { @DBRef private User user; // Other fields and methods }
Querying and filtering data in Spring Boot MongoDB CRUD:
@Query
annotations in the repository for customized queries.public interface UserRepository extends MongoRepository<User, String> { List<User> findByAgeGreaterThan(int age); // Custom query methods }
Transaction management with MongoDB in Spring Boot:
@Transactional
or TransactionTemplate
.@Transactional public void performTransaction() { // MongoDB operations within a transaction }