C6 架构系列——Maven模块划分和依赖设计

2014-09-11 15:28:49

请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)

一、C6架构模块划分和依赖

C6软件架构模块划分和依赖(Craft6.cn 颜超敏).jpg

 整个项目模块划分如图所示:

  • base-api

    主要放置基础接口和常量。包括:

    1. 架构分层的基础接口,如Domain、IRepository、IDao、IQueryDao、PO、Tbl等。通过这些接口,
      确定整个项目常规功能的开发层次、方式。

    2. 数据库访问相关的实体、常量等。

    3. JMS信息处理接口。

    4. 其它如图片处理、配置参数、主键生成、模板等相关底层功能的接口定义。


  • base-core
    依赖base-api

    对base-api的接口进行抽象的实现。


    1. 对架构分层的各个接口进行抽象类实现,开发常规功能时,直接继承这些抽象类即可。

    2. 对于一些无需数据库或应用上下文支持便可以实现的接口进行实现。

    3. 放置所有环境无关的工具类。


  • base-db-mybatis

    依赖base-core

    基于MyBatis技术实现数据库访问层面的功能。其它模块只需要直接或间接依赖本模块,即可获得数据库
    相关功能支持。


  • base-gl

    依赖base-db-mybatis。
    实现若干通用模块的功能实现。如通用分类、大文本存储、二进制对象存储、附件存储、
    EAV实体属性值模型等功能。

  • base-ou

    依赖base-gl

    基于C6架构设计的通用组织设计(含参与者、用户、权限等)实现的用户、权限模块。

  • base-web

    依赖base-ou
    C6架构基于Spring相关组件(Spring Core、Spring MVC、Spring Security等)实现web功能,在本模块中完成
    对这些组件的引入、配置和底层的开发。
    提供多层的Controller抽象类,供常规功能开发时,根据需要继承相应的Controller抽象类。
    本模块设计的好处是以后有其它的web项目,直接依赖本模块即可,无须做重复的开发和配置。

  • craft6-platform

    依赖base-web
    C6博客平台项目,通过依赖base-web获得所有web层开发的支持,无须再配置Spring、Spring MVC相关的配置。
    实现博客、公告、推荐、方案销售相关功能。


二、架构的扩展方式

  • base-ou 用户组织权限的替换
    由于base-ou的设计是基于松耦合、模块化方式,容易替换。
    在项目实施中,不少企业有自己的用户组织权限模块,可以自行开发替换本模块即可。
    如新模块命名为:base-ou-xxx,让base-web 依赖该新模块即可。

  • base-web 专供web项目依赖的基础模块

    如果有其它的web项目,不是必须都通通放入craft6-platform中,这样会导致该项目越来越庞大。
    可以划分为craft6-crm、craft6-scm、craft6-erp、craft6-project等等,这样每个项目的代码
    独立和容易管理。
    对于一些多个项目都有的重复功能,可以抽取到base-core、base-gl等模块实现。

  • 对于非web的项目

    对于一些不是基于Web的项目,可以直接继承base-ou,这样避免引入大量不必要的包。


  • 对于其它的表现层支持
    如移动app、富客户端程序等,可以开发专门的基础模块提供支持,有利于系统功能的重用。
    比如base-app、base-rcp等。



可通过扫描左侧二维码阅读本文。本站文章均为颜超敏原创,欢迎转载,请注明出处即可,转载可通过下面的社会化工具快速完成。

分享到:


为您推荐这些文章,如果感兴趣,请继续阅读吧:

C6 架构系列——Maven模块划分和依赖设计

Maven,Maven项目,Maven架构,Maven多模块,Maven多模块划分,Maven依赖,C6软件架构,DDD,领域驱动设计,开发框架,开发架构,软件架构,四层架构,Java架构,Java Web架构,轻量级架构,多层架构,MVC,框架设计,架构设计,平台软件架构

     本文阐述了C6软件架构的模块划分和依赖方式,并说明基于此架构的扩展方式。

颜超敏,唯心六艺,Craft6.cn,电子商务博客,电子商务研发,电商研发,电子商务研究,电商研究,电子商务专家,电商专家,电子商务知识,电商知识,电子商务教程,电商教程,电子商务模式,电子商务平台,电子商务商业模式,电子商务数据库设计,电商数据库设计,电子商务系统分析,Java架构设计,Java软件架构,B2C,O2O,o2o模式,o2o电子商务,o2o电子商务平台,中国电子商务,电子商务平台建设方案
粤ICP备14060523号 Copyright @2014 -唯心六艺软件