{"id":15196863,"url":"https://github.com/team-dodn/spring-boot-java-template","last_synced_at":"2025-05-16T09:03:01.992Z","repository":{"id":155990370,"uuid":"593775657","full_name":"team-dodn/spring-boot-java-template","owner":"team-dodn","description":"SpringBoot basic structure template based on Java","archived":false,"fork":false,"pushed_at":"2024-12-27T10:55:51.000Z","size":366,"stargazers_count":309,"open_issues_count":0,"forks_count":76,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-12T04:49:20.413Z","etag":null,"topics":["java-spring","java-spring-boot","openfeign","spring-best-practices","spring-boot","spring-boot-java","spring-framework","spring-java","spring-jpa","spring-multimodule","spring-rest-docs","spring-starters","spring-template","spring-web"],"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/team-dodn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/logging/build.gradle","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-26T20:12:56.000Z","updated_at":"2025-04-06T05:55:47.000Z","dependencies_parsed_at":"2024-02-06T19:29:41.029Z","dependency_job_id":"554e5f80-f60b-4cfb-9cea-75e03632c2f8","html_url":"https://github.com/team-dodn/spring-boot-java-template","commit_stats":{"total_commits":36,"total_committers":2,"mean_commits":18.0,"dds":0.05555555555555558,"last_synced_commit":"48a476ae0d4cdaa539daa0f861ea7072c9718a6a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/team-dodn%2Fspring-boot-java-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/team-dodn%2Fspring-boot-java-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/team-dodn%2Fspring-boot-java-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/team-dodn%2Fspring-boot-java-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/team-dodn","download_url":"https://codeload.github.com/team-dodn/spring-boot-java-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501552,"owners_count":22081527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["java-spring","java-spring-boot","openfeign","spring-best-practices","spring-boot","spring-boot-java","spring-framework","spring-java","spring-jpa","spring-multimodule","spring-rest-docs","spring-starters","spring-template","spring-web"],"created_at":"2024-09-28T00:05:07.770Z","updated_at":"2025-05-16T09:03:01.937Z","avatar_url":"https://github.com/team-dodn.png","language":"Java","readme":"# SpringBoot Java Template\n\n[![Twitter](https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Ftwitter.com%2Fgeminikims)](https://twitter.com/geminikims)\n[![Youtube](https://img.shields.io/youtube/channel/views/UCDh8zEDofOcrOMAOnSVL9Tg?label=Youtube\u0026style=social)](https://www.youtube.com/@geminikims)\n[![CI](https://github.com/team-dodn/spring-boot-java-template/actions/workflows/ci.yml/badge.svg)](https://github.com/team-dodn/spring-boot-java-template/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](https://opensource.org/licenses/Apache-2.0)\n\nThis is not the best structure. This is a good basic structure to use early in the project when productivity is important.\n\nRemember, as your software grows, your structure must grow too.\n\n# **Modules**\n\n## Core\nEach submodule of this module is responsible for one domain service.\n\nThis must make the modular structure grow with the growth of the service.\n\n### core:core-api\nIt is the only executable module in the project. It is structured to have domains to maximize initial development productivity.\n\nIt is also responsible for providing APIs and setting up frameworks for services.\n\n### core:core-enum\n\nThis module contains enums that are used by `core-api` and must be delivered to external modules.\n\n\u003cbr/\u003e\n\n## Clients\nSubmodules of this module are responsible for integrating with external systems.\n\n### clients:clients-example\nThis module shows an example of HTTP communication with `Spring-Cloud-Open-Feign`.\n\n\u003cbr/\u003e\n\n## Storage\nSubmodules of this module are responsible for integrating with the various storages.\n\n### storage:db-core\nThis module shows an example of connecting to `MySql` using `Spring-Data-JPA`.\n\n\u003cbr/\u003e\n\n## Support\nSubmodules of this module are responsible for additional support.\n\n### support:logging\nThis module supports logging of service and has a dependency added for distributed tracing support.\n\nIt also includes dependencies to support `Sentry`.\n\n### support:monitoring\nThis module supports monitoring of services.\n\n\u003cbr/\u003e\n\n## Tests\nSubmodules of this module are responsible for the convenience of writing test codes.\n\n### tests:api-docs\nThis module is for writing spring-rest-docs conveniently.\n\n\u003cbr/\u003e\n\n# Dependency Management\nAll dependency versioning is done through `gradle.properties` file.\n\nIf you want to add a new dependency, put the version in `gradle.properties` and load it in `build.gradle`.\n\n\u003cbr/\u003e\n\n# Runtime Profiles\n\n## local\nThis profile aims to configure an environment that can be developed even if the network is disconnected.\n\n## local-dev\nThis profile aims configurations that allow me to connect to the DEV environment from my local machine.\n\n## dev\nThis profile exists for deploying Development environments.\n\n## staging\nThis profile exists for deploying Staging environments.\n\n## live\nThis profile exists for deploying Live environments.\n\n\u003cbr/\u003e\n\n# Test Tasks \u0026 Tags\n\n## test\nThis is a collection of test-tasks that we want to run on `CI`.\n\nIf you want to change the settings, modify the `build.gradle` file.\n\n## unitTest\nThis is a group of tests that typically have no dependencies, are fast to run, and test a single feature.\n\n## contextTest\nThis is a task that runs with SpringContext and has integration tests.\n\n## restDocsTest\nThis is a task to create asciidoc based on spring-rest-docs.\n\n## developTest\nThis is a task of tests that should not be run in `CI`.\n\nThis is a good tag to use if you're not good at writing tests.\n\n\u003cbr/\u003e\n\n# Recommended Preferences\n\n## Git Hook\nThis setting makes run `lint` on every commit.\n\n```\n$ git config core.hookspath .githooks\n```\n\n## IntelliJ IDEA\nThis setting makes it easier to run the `test code` out of the box.\n\n```\n// Gradle Build and run with IntelliJ IDEA\nBuild, Execution, Deployment \u003e Build Tools \u003e Gradle \u003e Run tests using \u003e IntelliJ IDEA\t\n```\n\nIf you want to apply lint settings to the format of IDEA, please refer to the guide below.\n\n[Spring Java Format IntelliJ IDEA](https://github.com/spring-io/spring-javaformat#intellij-idea)\n\n---\n\n# Supported By\n\u003cdiv align=\"center\"\u003e\u003ca href=\"https://jb.gg/OpenSourceSupport\"\u003e\u003cimg src=\"https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png\" alt=\"JetBrains Logo (Main) logo.\" width=\"240\"\u003e\u003c/a\u003e\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteam-dodn%2Fspring-boot-java-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteam-dodn%2Fspring-boot-java-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteam-dodn%2Fspring-boot-java-template/lists"}