How to Seamlessly Integrate Spring Boot with MongoDB: A Step‑by‑Step Guide
This tutorial walks you through adding MongoDB dependencies to a Spring Boot project, configuring the connection, defining entity and repository classes, implementing service and controller layers, and optionally setting up sharding or replica‑set architectures for scalable data management.
This guide explains how to integrate MongoDB into a Spring Boot application, covering dependency setup, connection configuration, entity and repository creation, service and controller implementation, and optional sharding or replica‑set configurations.
1. Add Dependencies
<dependencies>
<!-- MongoDB driver -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.4.0</version>
</dependency>
<!-- Spring Data MongoDB -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>2.6.2</version>
</dependency>
</dependencies>2. Configure MongoDB Connection
spring.data.mongodb.uri=mongodb://username:password@localhost:27017/myDatabase3. Create Entity Class
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "users")
public class User {
@Id
private String id;
private String name;
private int age;
// Getters and setters
}4. Create Repository Interface
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends CrudRepository<User, String> {
}5. Service Layer Using Repository
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User save(User user) {
return userRepository.save(user);
}
public User findById(String id) {
return userRepository.findById(id).orElse(null);
}
// Other CRUD methods
}6. Controller Layer Handling HTTP Requests
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping
public User save(@RequestBody User user) {
return userService.save(user);
}
@GetMapping("/{id}")
public User findById(@PathVariable String id) {
return userService.findById(id);
}
}7. Optional: Sharding Configuration
Sharding distributes collections across multiple servers to improve performance. Add sharding properties in application.properties or application.yml and create a configuration class.
spring.data.mongodb.shard-strategy=org.springframework.data.mongodb.core.shard.BackwardCompatibleShardingStrategy
spring.data.mongodb.target-db-config.default.mongo-uri=mongodb://localhost:27017/mydb
spring.data.mongodb.target-db-config.default.database=mydb
spring.data.mongodb.target-db-config.shard-targets={"ds"=>0,"target"=>"mydb_${0..199}"} @Configuration
public class MongoDBConfiguration {
@Bean
public ShardingDataSource shardingDataSource() {
// Create a sharding data source
// ...
}
@Bean
public MongoDatabaseFactory mongoDatabaseFactory() {
// Create a MongoDatabaseFactory instance
// ...
}
}8. Optional: Replica Set Configuration
Replica sets provide data redundancy and read/write scaling. Define replica‑set properties and a configuration class.
spring.data.mongodb.replica-set=myReplicaSet
spring.data.mongodb.host=mongodb://localhost:27017
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=mydb @Configuration
public class MongoDBConfiguration {
@Bean
public MongoClient mongoClient() {
// Create a MongoClient instance
// ...
}
}Ensure the MongoDB service is running, entity fields match database fields, and the appropriate Spring Data MongoDB dependencies are included in pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>With these steps, a basic Spring Boot application can interact with MongoDB, and you can extend it with sharding or replica‑set features as needed.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
MaGe Linux Operations
Founded in 2009, MaGe Education is a top Chinese high‑end IT training brand. Its graduates earn 12K+ RMB salaries, and the school has trained tens of thousands of students. It offers high‑pay courses in Linux cloud operations, Python full‑stack, automation, data analysis, AI, and Go high‑concurrency architecture. Thanks to quality courses and a solid reputation, it has talent partnerships with numerous internet firms.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
