MCPcopy Index your code
hub / github.com/danielliao11/spring-microservice-boilerplate

github.com/danielliao11/spring-microservice-boilerplate @v1.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.0 ↗ · + Follow
430 symbols 1,096 edges 140 files 181 documented · 42%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

spring-microservices-boilerplate

English Version

目录

spring-microservices-boilerplate,是一个方便JAVA后端人员快速开发的微服务脚手架。对前端友好,适于前后端分离,敏捷开发模式。

优点:

  • 采用领域驱动模型结构定义package结构;
  • 微服务架构,更加灵活,降低开发及维护的复杂度;
  • 使用 OAuth2 作为授权验证;
  • 可通过配置文件 application.yml 配置使用 Redis 或者数据库作为 TokenStore;
  • RESTFul API 使用 json 方式请求数据;
  • 返回标准的 ResponseEntity,并按 HttpStatus 标准返回状态码;
  • 使用 Gradle 作为项目构建工具;
  • 使用 Swagger 作为文档工具,方便维护文档,同时可使用Swagger做简易的API测试;

本脚手架基于以下组件构建:

并且使用 specification-arg-resolver 作为过滤器.(为了方便使用了java8的LocalDateTime,还补充了spec注解。)

NOTE
如果要使用RSA验签,请使用 ValidateHelpervalidateWithSignCheck方法,并在需要签名的字段上加上注解 SignField

编译运行 [TOP]

Linux 及 Unix 使用以下命令。

$ cd <spring-microservices-boilerplate root path>
$ ./gradlew clean build bootRun

Windows 下,直接双击 gradlew.bat 运行。

注意 [TOP]

  • Validate failed -> Response http status is 422(Unprocessable Entity)
  • Server error -> Response http status is 500(Internal Server Error)

使用 [TOP]

导入 init.sql 到您的数据库,建议使用 PostgreSQL [TOP]

编辑 application.yml, 选择缓存类型及 TokenStore 类型。[TOP]

使用 Swagger 文档访问资源 [TOP]

启动项目,在浏览器(程序员当然用Chrome咯 ;) )中访问 http://localhost:8080/swagger-ui.html#/(默认端口8080,您可以修改 application.yml 中的 server.port 来修改端口。)

出现如下页面

然后根据文档提示即可测试各接口。

  1. 从 open 组的 login 接口获取登录 token 和刷新 token。 得到结果

如果给 "Limit-Key" header 添加一个值,比如 "root", 当你频繁请求这个 API 时,便会返回 429 错误响应。

得到结果:

  1. 或者使用 refresh token 来获取新的token。

  2. 用得到的 access_token 来访问资源 得到结果

部署 [TOP]

  1. 传统,打个 war 包丢 tomcat 里
  2. 高效,打成 jar 包直接通过 java -jar foo.jar 运行
  3. 高效独立干净,使用 Docker.Dockerfile 已写好,按您的需要做修改即可 build Docker 镜像。

此外,docker-compose.yml 也已写好,方便您快速一键部署 Docker 容器。

NOTE
现使用了 docker-compose3 的新特性,需要您的 docker 版本高于1.13.0

许可证 [TOP]

MIT

Copyright (c) since 2015 saintdan

Version History [TOP]

查看版本信息点我哟~ ;)

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 321
Class 86
Interface 16
Enum 7

Languages

Java100%

Modules by API surface

src/main/java/com/saintdan/framework/domain/BaseDomain.java18 symbols
src/main/java/com/saintdan/framework/po/Client.java16 symbols
src/main/java/com/saintdan/framework/domain/UserDomain.java14 symbols
src/main/java/com/saintdan/framework/servlet/RequestWrapper.java11 symbols
src/main/java/com/saintdan/framework/domain/RoleDomain.java11 symbols
src/main/java/com/saintdan/framework/config/custom/CustomOAuth2AuthenticationDetails.java11 symbols
src/main/java/com/saintdan/framework/enums/AccountSourceType.java10 symbols
src/main/java/com/saintdan/framework/tools/StreamUtils.java9 symbols
src/main/java/com/saintdan/framework/po/User.java9 symbols
src/main/java/com/saintdan/framework/filter/LimitFilter.java9 symbols
src/main/java/com/saintdan/framework/domain/ClientDomain.java9 symbols
src/main/java/com/saintdan/framework/enums/ValidFlag.java8 symbols

Datastores touched

coreDatabase · 1 repos

For agents

$ claude mcp add spring-microservice-boilerplate \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page