Learning Springboot 3 with example project (Basic, Intermediete, Advance).
- All repositories on this page is private.
- This page just share readme (table of contents)
Java : 21
Springboot : 3.2.0
- Docker Compose
- Postman Collection
- Diagram, pdf, doc, excel, all notest etc
- learn initialize project, pom, application.yml, banner, compile, run, project structure (jdk)
DONE
- learn create API and spring component(controller, service, repostory)
DONE
- Springboot3 & MySql (librarry, config, JPA, CRUD)
DONE
- Springboot3 & sl4j (librarry, annotation, config, custom log)
DONE
- Springboot3 & liquibase (librarry, config, change-log.yml, query sql file, table change log)
DONE
- Springboot3 & Swagger Open API (librarry, config, permitAll url, test)
DONE
- Springboot3 & unitest (testing the controller & service class)
Status | Name | Desc |
---|---|---|
Done | project initiate | init, pom.xml, banner, application.yml, spring profile (dev, prod) |
Done | db migration | liquibase, config, change-log.yml, .sql |
Done | crud mysql | mysql connector java, jpa, crud, query native, @Controller @Service @Repository |
Done | logger | slf4j, logback |
Done | swagger api doc | swagger, open api, api doc |
- Springboot3 & Spring Security (librarry, config, jwt, authorization, authentication, permitall api)
DONE
- Springboot3 & CORS (config, set all propertiy of CORS)
DONE
- Springboot3 & Redis (librarry, application.yml, config, service, CRUD)
DONE
- Springboot3 & RabbitMQ (librarry, application.yml, config, publisher, listener, message header, message body, exchange, route, queue)
DONE
- Springboot3 & Kafka (librarry, application.yml, config, publisher, listener, broker, group, topic)
DONE
- Springboot3 & elastic (librarry, application.yml, config, elastic CRUD service)
DONE
Status | Name | Desc |
---|---|---|
Done | spring security | spring security 6, security configuration, jwt, authentication, authorization, middleware, UserDetail Spring |
Done | redis | spring data redis, config yml, RedisConfig, redis Expired TTL, redis for auth & authorization |
Done | cors | CorsConfig.java, allow request header, allow response header, allow origins url, allow http method |
Done | rabbitmq | spring rabbit, config yml, publish, listen, exchange, route, queue |
Done | kafka | spring kafka, config yml, publish, listen, broker, group, topic |
Done | elastic | spring elastic, config yml, listen data from rabbitmq, crud elastic, searching |
- Springboot3 custom librarry
- Springboot3 deploy manualy the custom librarry into github package using apache maven
- Springboot3 deploy automate the custom librarry into github package using github action
- Springboot3 & Rollback Transaction (@Transactional, rollbackfor, @ControllerAdvice, @ExceptionHandler)
Done
- Springboot3 & Connection Pooling (Tomcat Connection Pooling, set max pooling, active pooling, idle pooling, lock pooling)
- Springboot3 & Concurrency (@Transactional, Optimistic Locking, Pesimistic Locking, Versioning)
- Springboot3 & @Async (annotation, bean registration, implement async been on function )
- Springboot3 & @Scheduler (annotation, execute the scheduler)
- Springboot3 & RateLimmiter (resilent4j librarry, config, implement on controller)
- Springboot3 & Metric API (spring actuator lib, config, permitall url metric, testing generate metric)
- Springboot3 & Prometheus-Grafana (librarry, config, prometheus connection status check, prometheus execute sraping api, grafana datasource config, prometheus.yml, grafana dataource.yml)
Status | Name | Desc |
---|---|---|
Done | custom librarry | Custom librarry for standarized the Controller, Service, Repository, Dto, Entity, etc |
Done | github package as librarry repository | Deploy custom librarry into github package, deploy manualy using maven, deploy automate using github action |
Done | rollback transaction | @Transactional, rollbackfor, @ControllerAdvice, @ExceptionHandler |
connection pooling | librarry tomcat jdbc, hikariCP | |
concurrency racecondition | ||
Done | async | |
scheduler | ||
ratelimmiter | ||
metric api | ||
prometheus grafana | ||
Done | Unitest service layer | |
Done | Unitest controller layer |
- learn how to config using spring profile (dev, staging)
DONE
- learn how to set value from environtment value for .yml file
DONE
- learn how to dockerize project (Dockerfile, docker compose, docker image, docker container, expose port, docker network, connection)
- learn how to ci/cd (github action, pipeline, vps)
Status | Name | Desc |
---|---|---|
Done | Springboot profile | spring profile dev/prod on pom.xml, application.yml application-dev.yml application-prod.yml |
Done | Springboot3 environtment variable | env variable for application-prod.yml and docker-compose.yml |
Done | Build docker image | Springboot 3 create, application.yml application-dev.yml application-prod.yml, docker file for build docker image, docker-compose.yml for crete and run docker container |
Done | Build docker image with custom setting.xml | Springboot 3 create docker file for build docker image with custom setting.xml, download custom librarry from github package |
Done | Github Action build & push docker image to dockerhub | Springboot 3, Dockerfile, Github Action, Dockher Hub, Secreet Variable |
Done | Github Action deploy to VPS | Springboot3, Github Action, VPS, Secreet Variable |
Done | Github Action build & push docker image to github container registry | Springboot 3, Dockerfile, Github Action, github container registry |
- install portainer for docker management on vps
Status | Name | Desc |
---|---|---|
Done | nginx | nginx, gateway, load balancer, round robin, vertical scalling backend service, docker , docker compose |
Done | portainer | portainer, docker-compose, portainer configuration, container management, see logger, download logger, recreate docker container |
Done | argocd | argocd-server, argocd-repository, ci/cd, docker compose, configuration |
- Registry Service (librarry, config, registry server, registry client)
- Spring cloud gateway (librarry, application.yml, config, routing, filtering)
- Spring Cloud gateway CORS
- Auth service with feature (user, role, permission, menu, authentication, authorization, jwt, redis auth)
- Main Service with features (product API for CRUD into mysql, publish into kafka)
- Search Service with features (product API for search data into elastic, listen data from
kafka
and CRUD toelastic
) - RateLimmiter with Resilent4j
- Monitoring with Prometheus and Grafana
Status | Name | Desc |
---|---|---|
registry service | discovery service, eureka | |
gateway service | spring cloud gateway, redis, rate limmiter, routing, filter, cors, metric, prometheus, grafana, logger | |
auth service | spring security, jwt, oauth1, redis, authentication, authorization, midleware, logger | |
main service | crud product api, jpa, mysql, rabbitmq, internal token, logger | |
search service | search product, elastic, rabbitmq , internal token, logger |