In a nutshell: A personal sandbox for experimenting with different API paradigms (REST, gRPC, SOAP, GraphQL), Spring features (data, security, AOP, testing, etc.), integration/messaging, and Dockerization—built purely for hands‑on learning, not production.
- Learning playground: Tinker freely with each API style and core Spring capability.
- Practical focus: Emphasis on building solid REST and high‑performance gRPC services.
- Breadth over polish: Explore SOAP and GraphQL to see how they compare.
- REST APIs: Spring MVC or reactive WebFlux patterns.
- gRPC services: Fast binary RPC for microservices.
- SOAP revisited: Understand legacy XML‑based services.
- GraphQL basics: Flexible query patterns.
- In‑app communication: Spring Integration or Cloud Stream.
- Message brokers: Try Kafka or RabbitMQ for async flows.
- Dockerize it: Package each service for easy, environment‑agnostic runs.
- Portability mindset: Learn container best practices.
- Data access:
- Spring Data JPA (Hibernate)
- JDBC Template for fine control
- Fundamentals: Dependency Injection & IoC
- Cross‑cutting: AOP for logging, security, etc.
- Security: Spring Security setups
- Bootstrapping: Spring Boot auto‑config magic
- Web layers: MVC or WebFlux, plus REST endpoints
- App Context: How beans are managed
- Transactions: Declarative TX boundaries
- Testing: JUnit + Mockito with Spring’s test support
- Clone the repo.
- Pick a module (REST, gRPC, messaging, etc.).
- Run via Docker or locally.
- Experiment freely—break things, fix them, try new patterns.
- Read the docs in each folder for setup and sample calls.
- Curiosity‑driven: A zero‑pressure space to try, fail, and learn.
- Not production‑grade: Focus is on exploration, not hardening.
- Continual growth: Add new experiments as Spring evolves.