概述
ZEN-SCAFFOLD - 一个基于Spring Boot的微服务脚手架
GitHub
https://github.com/xiiiblue/zen-scaffold
特性
- 使用SpringBoot系列框架
- Maven构建,微服务各自独立,使用聚合而非继承
- Git版本控制
- 使用Spring MVC提供REST服务
- 持久层框架使用Spring Data JPA/JDBC
- 数据源默认使用HikariCP
- 使用SpringFox生成API文档
- 提供Swagger-UI可测试API界面
- 提供独立的HTML静态文档生成模块
- logback分别打印-info与-error双日志
- ExceptionHandler统一异常处理
- Hystrix服务融断及降级
- 选用较繁琐的filter方式处理controller日志,可打印response内容
- Feign声明式REST调用
- Service层仅做单元测试(mokito)
- Controller层仅做集成测试(testRestTemplate)
- Lombok简化domain层开发
- 业务无关代码抽离成common模块,多个微服务共享
- 允许不同微服务间的少量业务代码冗余,目的是降低耦合
- 引入DTO层,应对前端及服务间调用
- 使用ModelMapper简化模型属性映射
- 使用PostMan+NewMan做REST接口回归测试
- 同时支持Oracle(开发/测试/生产),MySQL(本地),以及H2(内嵌)
- 集成测试使用H2内存库,以避免数据问题造成的不稳定
- 提供简易Thymeleaf起始页,链接至Hystrix-Dashboard、H2-Console等
- 集成spring-boot-devtools,提高本机WEB调试时的应用重加载速度
项目依赖
spring-boot-starter-web - Spring MVC
spring-boot-starter-actuator - 应用监控
spring-boot-configuration-processor - 注解配置
spring-boot-starter-data-jpa - JPA支持(Hibernate/EclipseLink等)
spring-boot-starter-data-jdbc - 原生JDBC支持
spring-boot-devtools - 开发环境工具
spring-boot-starter-cache - 缓存支持
spring-boot-starter-thymeleaf - 前端模版
spring-cloud-starter-hystrix - Hystrix集成
spring-cloud-starter-hystrix-dashboard - Hystrix监控面版
spring-cloud-starter-feign - 声明式REST调用
spring-boot-starter-test - 单元/集成测试支持
equalsverifier - Equals&HashCode测试
SpringFox - API文档生成
HikariCP - 数据源
lombok - Getter/Setter简化
modelmapper - 模型属性映射
h2database - 内嵌内存库
开发环境
- Maven - 项目构建工具
- Nexus - Maven私服
- Git - 分布式版本控制系统
- IntelliJ IDEA - 可选,推荐的IDE