
Introduction
This document helps our developer to understand and start developing springBoot and MongoDB-based applications. This is a very simple project and users can copy and extend it.
Here’s an example of how you can develop a Hospital Management System application using Spring Boot microservices and MongoDB:
- Set up your development environment:
- Install Java Development Kit (JDK)
- Install Apache Maven
- Install MongoDB
- Create a new Spring Boot project using the Spring Initializr (https://start.spring.io/):
- Choose the required dependencies: Spring Web, Spring Data MongoDB, and Spring Boot DevTools.
- Generate and download the project.
- Create a MongoDB configuration file (
application.properties
) in thesrc/main/resources
directory:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=hospitaldb
4. Create a Hospital
entity class representing a hospital in src/main/java/com/example/hospital/entity/Hospital.java
:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "hospitals")
public class Hospital {
@Id
private String id;
private String name;
// other attributes, constructors, getters, setters
}
5. Create a HospitalRepository
interface in src/main/java/com/example/hospital/repository/HospitalRepository.java
:
import org.springframework.data.mongodb.repository.MongoRepository;
public interface HospitalRepository extends MongoRepository<Hospital, String> {
}
6. Create a HospitalService
class in src/main/java/com/example/hospital/service/HospitalService.java
:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class HospitalService {
@Autowired
private HospitalRepository hospitalRepository;
public List<Hospital> getAllHospitals() {
return hospitalRepository.findAll();
}
public Hospital getHospitalById(String id) {
return hospitalRepository.findById(id).orElse(null);
}
public Hospital saveHospital(Hospital hospital) {
return hospitalRepository.save(hospital);
}
public void deleteHospital(String id) {
hospitalRepository.deleteById(id);
}
}
7. Create a HospitalController
class in src/main/java/com/example/hospital/controller/HospitalController.java
:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/hospitals")
public class HospitalController {
@Autowired
private HospitalService hospitalService;
@GetMapping
public List<Hospital> getAllHospitals() {
return hospitalService.getAllHospitals();
}
@GetMapping("/{id}")
public Hospital getHospitalById(@PathVariable String id) {
return hospitalService.getHospitalById(id);
}
@PostMapping
public Hospital saveHospital(@RequestBody Hospital hospital) {
return hospitalService.saveHospital(hospital);
}
@DeleteMapping("/{id}")
public void deleteHospital(@PathVariable String id) {
hospitalService.deleteHospital(id);
}
}
8. Run the application:
- Open a terminal, navigate to the project’s root directory, and execute the following command:
mvn spring-boot:run
9. Test the application:
Use tools like cURL, Postman, or any REST client to interact with the endpoints:
GET http://localhost:8080/hospitals
– Get all hospitals
GET http://localhost:8080/hospitals/{id}
– Get a specific hospital by ID
`
POST http://localhost:8080/hospitals` – Create a new hospital (provide JSON payload) – DELETE http://localhost:8080/hospitals/{id}
– Delete a hospital by ID
This is a basic example to get you started. You can extend it further by adding more entities, repositories, services, and controllers to manage other aspects of the hospital management system, such as doctors, patients, appointments, etc. Remember to handle exceptions, add validations, and secure the application as needed.