前言
1. 简介
我们的目标为您生成一个完整和现代Web应用或者微服务架构, 具体如下:
基于Spring Boot, 提供高性能和健壮的Java技术栈服务端 基于Vue, 提供时尚、现代、移动优化的前端 一个健壮的微服务架构, 包括Gateway,Microservice,Nocas, Elastic组件和Docker等 使用Yarn和Maven为应用构建提供强大的支撑
2. 后端技术栈
Spring应用:
完整的- 基于Spring Boot提供应用配置简化
- Maven构建,测试,运行应用
- Spring Security组件
- JSON Web令牌(JWT)身份验证安全机制
- Spring MVC REST + Jackson
- Swagger来自动生成REST Controller API文档
- Zalando Problem Spring Web处理异常
- Mybatis-plus / Spring Data JPA和Bean校验
- 基于Liquibase数据库更新
- Elasticsearch支持,如果你需要基于你的数据库提供高级搜索能力
- MongoDB支持, 如果你想使用面向文档的NOSQL数据库替代JPA
- RocketMQ支持, 如果你需要一个消息发布订阅系统
- 构建标准可执行的JAR文件
Microservices:
微服务- 基于Netflix Zuul的HTTP流量路由
- 基于Nacos或Eureka的服务发现
- 基于Feign的服务消费客户端
生产环境组件:
- 使用Druid和ELK Stack监控
- 使用Caffeine + Redis提供两级缓存
- 静态资源优化 (gzip filter, HTTP cache headers)
- 使用Logback管理日志,可在运行时配置日志输出
- 使用dynamic datasource多库切换和读写分离,极致的性能提升
- 使用xxl-job任务调度引擎
- 完整的Docker和Docker Compose支持
代码结构
1. 整体结构
|─ ─ iBizEAM
|─ ─ app_EAMXXX Vue代码
|─ ─ public 静态资源引用
|─ ─ src Vue页面源代码
|─ ─ eam-app 前端web网关,下级可含多个独立gateway子项目
|─ ─ eam-app-web 具体app网关 JS+html+zuulproxy,含boot
|─ ─ eam-boot 开发者调试快速启动 debug boot
|─ ─ eam-core 系统后台核心代码,domain+service
|─ ─ eam-dependencies 项目依赖组件版本控制,dependencyManagement
|─ ─ eam-provider 服务接口提供,下级可含多个microservice子项目
|─ ─ eam-provider-api 具体微服务接口,dto+rest,含boot
|─ ─ eam-util 公共辅助项目,util+helper
2. core子项目结构
ibzou-core 项目基于“后台服务体系”发布,core项目为整个工程项目的核心,主要包括各个实体:
domain定义
dao层(mapper/repository/feignclient)
service
|─ ─ eam-core
|─ ─ src
|─ ─ main
|─ ─ java
|─ ─ cn.ibizlab 代码包名
|─ ─ core 子项目类型
|─ ─ ou 模块名
|─ ─ domain 各实体domain定义
|─ ─ filter 各实体查询过滤器
|─ ─ mapper 各实体dao层
|─ ─ service 各实体service接口定义
|─ ─ impl 各实体service实现
|─ ─ resources
|─ ─ liquibase 数据库结构版本控制
|─ ─ mapper mybatis mapper.xml
|─ ─ ou
|─ ─ target