美文网首页
基础篇-项目架构

基础篇-项目架构

作者: jimmyz81 | 来源:发表于2022-10-13 16:20 被阅读0次

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

    相关文章

      网友评论

          本文标题:基础篇-项目架构

          本文链接:https://www.haomeiwen.com/subject/gthczrtx.html