Welcome to the SpringBootSample repository! This project serves as a comprehensive demo/example for beginners and intermediate developers who want to dive into Spring Boot development. It contains all the essential components, tools, and patterns required to build enterprise-level applications using Spring Boot.
The repository is structured to provide a solid foundation for learning and implementing best practices in building REST APIs, authentication, microservices, and more. Whether you're starting with the basics or looking to enhance your knowledge with advanced features, this project has something for everyone.
-
spring-boot-bootcamp
- A self-contained project covering all the essential topics to get started with Spring Boot
- Features include:
- JWT Authentication
- Basic REST API implementation
- MongoDB integration
- Docker support with docker-compose
- Filebeat for centralized logging
- OpenAPI documentation
- Comprehensive documentation in the docs directory
-
spring-boot-reactive
- Demonstrates Spring WebFlux and reactive programming patterns
- Shows how to build non-blocking, event-driven applications
- Includes reactive database interactions
- Real-time data streaming examples
-
spring-boot-hibernate
- Examples of JPA/Hibernate integration
- Database relationship mappings and best practices
- Entity management and transaction handling
- Advanced querying techniques
-
spring-boot-kotlin
- Spring Boot implementation using Kotlin programming language
- Demonstrates Kotlin-specific features and best practices
- Coroutines integration
- Null safety features
- Beginner-Friendly: Covers the fundamental concepts for newcomers to Spring Boot
- Enterprise-Grade Patterns: Implements advanced concepts like reactive programming, containerization, and logging
- Security: Includes JWT-based authentication for secure APIs
- Database Integration: Demonstrates integration with MongoDB and relational databases
- Containerization: Docker support with docker-compose for easy deployment
- Monitoring: Filebeat integration for centralized logging
- API Documentation: OpenAPI/Swagger documentation for API endpoints
- Multiple Learning Paths: Separate modules for different aspects of Spring Boot development
- IDE Support: Includes configuration files for both IntelliJ IDEA and VS Code
Detailed documentation is available in the spring-boot-bootcamp/docs directory, covering various aspects of Spring Boot development:
- Spring Boot Fundamentals
- Spring Boot Annotations
- Spring Boot REST API
- Spring Boot Security
- Spring Boot Microservices
- Spring Boot Docker
- Spring Boot Advanced
- Spring Boot Hibernate
- Spring Boot Misc
- Logging
- Big O Notation
You can access the documentation through the following links:
- Java 8+ installed
- Maven installed
- MongoDB up and running
- Docker and Docker Compose (for containerized deployment)
- Basic understanding of Spring Boot and REST APIs
- IDE (IntelliJ IDEA or VS Code) with Spring Boot support
-
Clone the repository:
git clone https://github.com/developer-shubham101/SpringBootSample.git
-
Navigate to the desired module (e.g., spring-boot-bootcamp):
cd spring-boot-bootcamp -
Using Maven:
mvn clean install mvn spring-boot:run
-
Using Docker:
docker-compose up -d
The application will be available at http://localhost:8080. API documentation can be accessed at http://localhost:8080/swagger-ui.html.
- For IntelliJ IDEA: Import the project using the
.ideaconfiguration files - For VS Code: Use the provided
.vscodeconfiguration files for optimal development experience