I am hoping for this repository to serve several purposes
- An example of common Spring Boot integration patterns in terms of setting up
- Http Endpoints and Clients (using swagger)
- Kafka Consumers and producers
- Databases and Caches
- etc
- An example of common code design patterns how and why to use them
- strategy pattern
- adapter pattern
- factory pattern
- A place to explain my preferred approaches to things
- Url-based versioning of APIs
- Avoid using @Service and @Autowired annotations
- Use interfaces in constructors (your tests will thank you)
docker compose up -d
mvn clean install && (cd core && mvn spring-boot:run)
Swagger UI location: http://localhost:8080/swagger-ui/index.html
Multi-module project setup with kafka listeners and rest endpoints
Utilizing OAS swagger file to generate controllers, and implementing swagger ui
Implement wiremock standalone docker container and utilized to mock external systems
Add @SpringBootTest e2e tests that leverage wiremock embedded server
Update @SpringBootTest e2e tests to leverage testRestTemplate to test endpoints/controllers
Update @SpringBootTest e2e tests to leverage embedded kafka broker
Dockerize application and set up run config to debug container
Set up run config for local application properties Set up config volume for docker application properties and mount in compose
Setting up adapter pattern Setting up factory pattern
Setting up the ability to debug docker image
Setting up logging
Split up docker compose