新版的从sword包, 在旧版本上 分离了web的 工程, 增加和细化了工程内容。。。。。
有鱼金融公共依赖项目
为了统一公司的开发技术栈,交互接口和方便新项目的开发,因此创建了sword项目
├─sword
│ │
│ ├─sword-api---------------------------定义了公共的api接口所需要的类,
│ ├─sword-cache-------------------------缓存相关的工具类,计划采用jetCache
│ ├─sword-dao---------------------------数据库相关的类,包括分页插件,读写分离,多数据源的支持和 多种数据库类型的支持
│ ├─sword-feign-------------------------定义了公共的api接口所需要的类(基于Eureka来实现的服务注册与调用,在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。)
│ ├─sword-log---------------------------统一的日志处理,
│ ├─sword-mq----------------------------对mq的支持的封装,暂定支持rabbitmq和kafka
│ ├─sword-utils-------------------------工具类包
│ ├─sword-dts---------------------------分布式定时任务,暂时采用xxl-job
│ ├─sword-handler-----------------------统一异常处理
│ ├─sword-monitor-----------------------统一监控(利用Spring Boot Admin 来监控各个独立Service的运行状态;利用turbine来实时查看接口的运行状态和调用频率;通过Zipkin来查看各个服务之间的调用链等。)
│ ├─sword-config------------------------统一配置,配置中心的支持(目前采用apollo做配置中心)
│ ├─sword-workwechat------------------------企业微信SDK
[github] https://github.com/ata-cloud/sword
本代码采用 Intellij IDEA(2018.1 EAP) 来编写,但源码与具体的 IDE 无关。
- api 对外暴露的接口方法
- dto 数据传输, 通常和 对应po进行转换
- param 请求参数对象,默认以XxxParam结尾,如果请求是新增,修改,则可以用XxxDto作为入参
- exception 方法签名异常
- config 配置文件
- controller
- service
- dal 持久化层
- dao :接口方法
- entity:实体
- mapper:xml文件
-
maven pom:
- groupId com.youyu.platform=com.youyu(公司名称).platform(产品名称,没有产品名称可用部门名称替代)(GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构)
- artifacted 定义了当前maven项目在组中唯一的ID,比如,platform-ops = platform(产品名称,没有产品名称可用部门名称替代)-ops(发布平台系统)
- version 开发中的项目用1.0.0-SNAPSHOT,开发完成并且上线用${sw.version},下一个开发版本根据变更情况升级为1.1.0-SNAPSHOT 或者 2.0.0.RELEASE 解释说明: SNAPSHOT是不稳定版,可能是还在开发中的版本,在开发时用户A可能每天都会更新代码,可能会频繁的发布版本。
- 依赖管理 所有项目必须依赖 sword-parent
-
类命的预定
-
区分po、dto,不要把po中的所有字段都返回给前端。 前端需要什么字段,就返回什么字段
-
类名:首字母大写驼峰规则;方法名:首字母小写驼峰规则;常量:全大写;变量:首字母小写驼峰规则,尽量非缩写
-
数据表命名为:
子系统
_表
,如b_role
-
更多规范,参考[阿里巴巴Java开发手册]
- 所涉及的相关的技术有 :
- JSON序列化:Jackson
- 缓存:Redis
- 消息队列:RibbitMQ
- 数据库: MySQL 5.7.9(驱动6.0.6)
- 服务注册与发现:Eureka
- 服务消费:Ribbon、OpenFeign
- 负载均衡:Ribbon
- 分布式定时任务:xxl-job
- 配置中心:apollo
- 负载均衡:Ribbon
- 服务熔断:Hystrix
- 项目构建:Maven 3.3
- 后期引入:
- Docker
- Jenkins
- nginx
- keepalive
本项目正在开发阶段,望大家一起帮忙补全,有问题请联系 [email protected](熊成威),[email protected](王宋军 qq:1013381075)
1.1.0
-
sword-dao 操作记录拦截器: 支持自定义insert、update方法,支持多参数和List类型参数
-
sword-config Apollo 配置动态更新
-
sword-dao ExampleEnhancer 增强通用 Mapper 的 Example#createCriteria,自动根据查询对象中的属性解析出 criteria 的 condition
-
sword-dao 添加了拦截器,自动注入创建人修改人信息
-
sword-feign FeignClient 请求头添加App-Token(调用中台服务时,经过网关需要验证 app token)
-
sword-workwechat apollo 配置动态更新(需要将配置写在"work-we-chat"namespaces下)
-
sword-log 转自定义 servlet 有变动
-
sword-monitor 添加 cors filter 的开关
-
sword-swagger 自动配置swagger,方法上加 @ApiOperation 注解就可以
-
sword-api BizException 构造函数添加 desc 属性赋值
-
sword-feign 添加 MultipartFile 文件上传支持,支持多文件 MultipartFile[] 上传。
-
sword-feign 添加 FeignMultipartFile 类,实现了 MultipartFile 方便 Feign Client 文件上传。
-
sword-dao 中 com.youyu.sword.type.BaseCodeEnum 移到 sword-api com.youyu.sword.api.BaseCodeEnum
-
sword-feign Feign请求拦截器(设置请求头,传递登录信息)
-
sword-api 添加 @Trimmed 用于 reqeut param body(jackson) trim 方法去前后空格.
-
sword-cache-cachecloud 添加 jetcache 缓存框架支持.
-
sword-dao 升级 druid 从 0.2.23 到 1.1.12
1.2.0
- sword-dao 操作记录拦截器: 修复方法类型的正则判断缺陷
- sword-dao 操作记录拦截器: 添加
youyu.sword.operationRecord.enabled
配置开关