基础篇-项目架构

基础架构沿用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标准

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容