{"id":28046438,"url":"https://github.com/arcaneecholan/springboottemplate","last_synced_at":"2025-05-11T19:27:33.867Z","repository":{"id":288528800,"uuid":"968399319","full_name":"ArcaneEcholan/SpringBootTemplate","owner":"ArcaneEcholan","description":"A lightweight and easy-to-use Spring Boot startup template, based on Spring Boot 2.7.0.","archived":false,"fork":false,"pushed_at":"2025-05-05T15:21:20.000Z","size":245,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-05T16:34:19.920Z","etag":null,"topics":["java","maven","mybatis-plus","mysql","springboot2","template"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArcaneEcholan.png","metadata":{"files":{"readme":"README-zh.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":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-18T02:52:38.000Z","updated_at":"2025-05-05T15:21:23.000Z","dependencies_parsed_at":"2025-04-18T16:41:52.217Z","dependency_job_id":"e8922a07-95f6-4be2-a6eb-f2ad31502e98","html_url":"https://github.com/ArcaneEcholan/SpringBootTemplate","commit_stats":null,"previous_names":["arcaneecholan/easy-spring-template"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArcaneEcholan%2FSpringBootTemplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArcaneEcholan%2FSpringBootTemplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArcaneEcholan%2FSpringBootTemplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArcaneEcholan%2FSpringBootTemplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArcaneEcholan","download_url":"https://codeload.github.com/ArcaneEcholan/SpringBootTemplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253620126,"owners_count":21937312,"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","maven","mybatis-plus","mysql","springboot2","template"],"created_at":"2025-05-11T19:27:31.367Z","updated_at":"2025-05-11T19:27:33.855Z","avatar_url":"https://github.com/ArcaneEcholan.png","language":"Java","readme":"# Easy SpringBoot Template\n\n[English](./README.md) | 简体中文\n\n\u003e 一个轻量级、易于使用的 Spring Boot 启动模板，基于 **Spring Boot 2.7.0** 版本。\n\n---\n\n## 适用人群\n\n-   觉得 Spring Boot **过于复杂**的开发者\n-   想尽快启动一个 Spring Boot 应用程序\n\n---\n\n## 应用钩子\n\n在 Sprign IOC Bean 创建前后进行定制操作，例如决定是否初始化数据库连接。\n\n| Hook Name              | Desc                                        |\n| ---------------------- | ------------------------------------------- |\n| **BeforeBeanInitHook** | Spring IOC Beans 创建之前，执行高优先级逻辑 |\n| **AfterBeanInitHook**  | Spring IOC Beans 初始化后，执行自定义逻辑   |\n\n## MVC 钩子\n\n`beforeMvcRequest` → `handleEx/handleExtraEx` → `beforeWritingBody` → `afterMvcRequest`\n\n| 钩子名称                   | 描述             |\n| -------------------------- | ---------------- |\n| **beforeMvcRequest**       | 请求前           |\n| **handleEx/handleExtraEx** | 处理请求逻辑异常 |\n| **beforeWritingBody**      | **返回请求体**前 |\n| **afterMvcRequest**        | 请求后           |\n\n## SQL 表结构初始化\n\n-   **动态表名**: 根据运行时信息动态编造表名。\n\n-   **条件式创建索引**: 根据条件，选择性创建数据库索引。\n\n## 作为静态服务器\n\n**概览**\n\n支持 `vue2js`, `next.js`.\n\n命令：\n\n```shell\njava -jar xx.jar --serve_static=\"/path/to/static/\"\n```\n\n-   serve_static 参数指定磁盘上的 static 文件夹路径。\n    | value | |\n    | ------------------ | ---- |\n    | \"/path/to/static/\" | good |\n    | \"/path/to/static\" | bad: 没有以 \"/\" 结尾 |\n    | \"path/to/static\" | bad: 没有以 \"/\" 开头 |\n\n\n**使用 docker compose 启动**\n\n```\nstaticserver/\n├── server.jar\n├── docker-compose.yml\n├── .env(optional)\n└── static/\n    └── index.html\n```\n\ndocker-compose.yml\n\n```yml\nversion: \"3.8\"\n\nservices:\n    staticserver:\n        image: eclipse-temurin:8-alpine\n        container_name: \"${CONTAINER_NAME:-staticserver}\"\n        restart: always\n        ports:\n            - \"${LOCAL_PORT:-8080}:8080\"\n        volumes:\n            - \"${SERVER_JAR:-./server.jar}:/server.jar\"\n            - \"${STATIC_LOCATION:-./static}:/static\"\n        command: \u003e\n            java -Dfile.encoding=UTF-8 -jar /server.jar\n            --serve_mode=\"nextjs\"\n            --serve_static=\"/static/\"\n```\n\n.env\n```\nCONTAINER=staticserver\nLOCAL_PORT=8080\nSTATIC_LOCATION=custom/static\nSERVER_JAR=custom/server.jar\n```\n\nstart static server\n\n```shell\ndocker compose \\\n-f ${staticserver}/docker-compose.yml \\\nup -d\n```\n\nstop static server\n\n```shell\ndocker compose \\\n-f ${staticserver}/docker-compose.yml \\\ndown\n```\n\n---\n\n## 快速上手\n\n-   克隆项目:\n\n    ```bash\n    mkdir -p ~/projects\n    cd ~/projects\n    git clone git@github.com:ArcaneEcholan/easy-spring-template.git\n    cd easy-spring-template\n    ```\n\n-   运行 `App.java` 即可（无需数据库）\n\n## 连接数据库\n\n-   配置: `db.enabled` 调成 `true`\n\n-   一键启动 MySQL:\n\n    ```sh\n    sudo docker compose -f ./docker-compose-db.yml up -d\n    ```\n\n-   配置: `src/main/resources/application.yml`:\n\n    ```\n    # ============== custom ==============\n    db:\n        enabled: true\n        user: root\n        password: root\n        name: test\n        host: localhost\n        port: 33061\n    ```\n\n---\n\n## 协议\n\n本项目依据 MIT License 协议发布。\n\n---\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcaneecholan%2Fspringboottemplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farcaneecholan%2Fspringboottemplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcaneecholan%2Fspringboottemplate/lists"}