基础篇-项目架构

基础架构沿用spring架构模式,同时增加infrastructure-extension,对Quarkus的扩展和补充

Domain

领域模型和仓储接口,仅依赖于CDI接口和基本类库,逻辑不变,功能不变

Repository

Domain中Repository接口的实现,依赖jdbc及mybatis[quarkus-mybatis,MyBatis的Quarkus的封装,支持native模式]
MyBatis中使用方式和经典模式一样,没有变化
Repository实现与Mapper分离,只有接口需要实现的部分,与Mapper是组合关系

使用MyBatis

因为MyBatis使用了反射,为了支持native模式,我们有两种方式,参考quarkus-native

1)配置ReflectionConfigurationFiles,参考 reflection-config 
quarkus.native.additional-build-args=-H:ResourceConfigurationFiles=resources-config.json,-H:ReflectionConfigurationFiles=reflection-config.json

2)使用@RegisterForReflection
使用该方法会破坏Domain的依赖关系,使用该方法不支持第三方库
为了统一处理反射情况,推荐使用配置方式

Quarkus-MyBatis配置,参考 MyBatis - Quarkus

Application

与传统模式保持一致,CDI使用javax.enterprise标准

输入输出:Application输入使用xxxInput,输出使用xxxOutput,Input可以使用javax.validation进行验证
异常情况:对于异常直接返回BusinessException
实体转化:实体转化使用xxxMapper,使用mapstruct的@Mapper功能

WebApi

与传统模式保持一致,使用javax.ws.rs标准

你可能感兴趣的:(基础篇-项目架构)