Java开发规范(四)

微服务开发规范

1 领域服务

1.1 client工程结构

client:定义服务api接口包,@FeignClient 的 value值定义在配置文件 公司简称-microservice-name.yml
fallback:定义熔断降级处理类包,根据实际业务选择编写
dto: 定义服务的出入参对象类包,继承BaseDTO接口

1.2 server工程结构

controller: 定义服务实现类包,继承api接口、BaseController
facade:涉及其他服务域调用的复杂业务处理类包,比如分布式事务等,继承BaseFacade,按实际业务需求编写
service: 本服务域业务处理类包,继承BaseService
dao:数据库表操作(ORM)类包,自动生成
domain:本服务域处理对象类包,在entity、dto类都不能满足的情况下定义
entity: 数据库表映射对象类包,自动生成
beanmapper:entity、domain、dto对象转换处理类包,继承BaseObjectMapper
resources/mapper: 自定义sql语句文件目录

2 开发约束

2.1 领域服务开发约束

层级关系 controller->facade->service->dao,上级可调用下级,不允许下级调用上级,另service层可以相互调用,service层原则不直接调用其他业务域的dao,client
事务控制在facade、service层
服务请求入参对象要加上java bean validation校验

2.2 应用服务开发约束

  • 应用服务间禁止相互调用
  • 应用服务原则上不做事务控制
  • 业务请求入参对象要加上java bean validation校验

2.3 其他约定

2.3.1 properties文件定义

属性文件统一类型为yml
属性文件除非必要否则都定义在nacos配置中心,并按不同的功能分开定义,例如redis配置 公司简称-redis.yml
属性文件key命名规则:公司简称.模块名.功能名,例如微服务名:公司简称.microservice.finance

2.3.2 业务异常校验

一些基本的数据校验直接用java bean validation,复杂的逻辑校验抛出BusinessException

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值