{"id":25976772,"url":"https://github.com/mmushfiq/springboot-microservice-template","last_synced_at":"2026-03-11T04:03:27.129Z","repository":{"id":279468402,"uuid":"938332066","full_name":"mmushfiq/springboot-microservice-template","owner":"mmushfiq","description":"Spring Boot microservice template implemented using Spring Boot 3.3 and Java 21","archived":false,"fork":false,"pushed_at":"2025-12-12T07:13:27.000Z","size":146,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-13T06:47:07.784Z","etag":null,"topics":["archunit","docker-compose","gradle-8","java-21","junit5","liquibase","mongock","mongodb","opentelemetry","postgresql","rabbitmq","redis","spring-boot-3"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmushfiq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-24T19:35:57.000Z","updated_at":"2025-11-28T18:09:26.000Z","dependencies_parsed_at":"2025-06-25T06:40:56.224Z","dependency_job_id":"8fc8e666-530b-4c56-8543-a9648c461d03","html_url":"https://github.com/mmushfiq/springboot-microservice-template","commit_stats":null,"previous_names":["mmushfiq/springboot-microservice-template"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mmushfiq/springboot-microservice-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmushfiq%2Fspringboot-microservice-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmushfiq%2Fspringboot-microservice-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmushfiq%2Fspringboot-microservice-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmushfiq%2Fspringboot-microservice-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmushfiq","download_url":"https://codeload.github.com/mmushfiq/springboot-microservice-template/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmushfiq%2Fspringboot-microservice-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30370282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archunit","docker-compose","gradle-8","java-21","junit5","liquibase","mongock","mongodb","opentelemetry","postgresql","rabbitmq","redis","spring-boot-3"],"created_at":"2025-03-05T04:24:28.591Z","updated_at":"2026-03-11T04:03:27.108Z","avatar_url":"https://github.com/mmushfiq.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Boot Microservice Template\n\n![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.3-brightgreen)\n![JDK](https://img.shields.io/badge/JDK-21-blue)\n![Docker Compose](https://img.shields.io/badge/Docker%20Compose-latest-yellowgreen)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-42.7.3-yellow)\n![MongoDB](https://img.shields.io/badge/MongoDB-5.0.1-green)\n![Redis](https://img.shields.io/badge/Redis-3.3.3-red)\n![RabbitMQ](https://img.shields.io/badge/RabbitMQ-5.21.0-orange)\n![OpenTelemetry](https://img.shields.io/badge/OpenTelemetry-1.37.0-purple)\n![JUnit 5](https://img.shields.io/badge/JUnit%205-5.10.3-yellowgreen)\n![ArchUnit](https://img.shields.io/badge/ArchUnit-1.2.1-cyan)\n![GitHub](https://img.shields.io/github/license/isopropylcyanide/Jwt-Spring-Security-JPA?color=blue)\n\nThis is a template Spring Boot microservice implemented using **Spring Boot 3.3** and **Java 21**. It demonstrates the integration of various technologies and best practices for building microservices. Additionally, it showcases the usage of the [Common Library](https://github.com/mmushfiq/springboot-microservice-common-lib).\n\n`{PN}` - _project name or project name abbreviation_\n\n**Note:** This repository does not represent real-world business scenarios; the examples are solely intended to demonstrate the usage of various technologies.\n\n## Technologies and Tools Used\n\nThis template integrates multiple tools and frameworks, including:\n\n- **Docker Compose** - For containerized dependencies.\n- **PostgreSQL** - Relational database.\n- **Liquibase** - Database migration tool for PostgreSQL.\n- **MongoDB** - NoSQL database.\n- **Mongock** - Database migration tool for MongoDB.\n- **Redis** - In-memory caching system.\n- **RabbitMQ** - Message broker for event-driven communication.\n- **ShedLock** - Ensures scheduled tasks run in distributed environments.\n- **Logstash/Logback** - Centralized logging.\n- **Checkstyle** - Code style enforcement.\n- **OpenFeign** - Declarative REST client.\n- **OpenTelemetry** - Observability and distributed tracing.\n- **JUnit 5** - Unit testing framework.\n- **ArchUnit** - Architecture rule validation.\n\n## Running the Application Locally\n\n### Prerequisites\n\n- **Java 21**\n- **Gradle**\n- **Docker \u0026 Docker Compose**\n\n### Start Dependencies\n\nBefore running the application, start required dependencies using Docker Compose:\n\n```sh\ndocker-compose up\n```\n\nThis will create **PostgreSQL, MongoDB, Redis, RabbitMQ, and Jaeger** containers.\n\n### Setting Up the Common Library Dependency\n\nThe **springboot-microservice-common-lib** dependency is not yet available in a central repository. To use it, you need to pull it from the GitHub package repository, which requires a **GPR_TOKEN**. Since this token is private and user-specific, it cannot be shared in this repository.\n\nTo include the dependency locally, follow these steps:\n\n1. Clone the `springboot-microservice-common-lib` repository:\n   ```sh\n   git clone https://github.com/mmushfiq/springboot-microservice-common-lib.git\n   ```\n2. Navigate to the cloned directory:\n   ```sh\n   cd springboot-microservice-common-lib\n   ```\n3. Publish the library to your local Maven repository using Gradle:\n   ```sh\n   ./gradlew publishToMavenLocal\n   ```\n\nAfter completing these steps, the dependency will be available in your local Maven repository and can be used by this microservice.\n\n### Running the Application\n\nRun the application with the `local` profile. You can do this via IntelliJ IDEA run configurations or using the Gradle command:\n\n```sh\n./gradlew bootRun --args='--spring.profiles.active=local'\n```\n\n## API Documentation\n\nSwagger UI is available at:\n\n[http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html)\n\n## Additional Tools\n\n- **RabbitMQ UI** - Monitor queues:\n  [http://localhost:15672](http://localhost:15672)\n- **Jaeger UI** - View tracing data:\n  [http://localhost:16686](http://localhost:16686)\n\n## License\n\nThis project is licensed under the Apache-2.0 License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmushfiq%2Fspringboot-microservice-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmushfiq%2Fspringboot-microservice-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmushfiq%2Fspringboot-microservice-template/lists"}