基本包结构

本节详细说明本项目的基本目录结构

material-admin模块

material-admin包含3个核心模块:

  • material-core
  • material-generator
  • material-manage其中guns-manage一个java web模块,其他都为java se项目;具体每个包的作用通过名字即可看出包含的功能分别为:核心模块,代码生成模块,web管理模块

具体每个包里的细节不详细介绍,开发人员可以在使用过程中逐渐了解,本身代码量并不大,熟悉起来不需要花费太多时间。

这里仅详细说明下material-manage的内部结构,毕竟日常开发主要是基于该模块来做的。

material-manage

material-manage是一个标准的java web项目

material-manage

目录结构包含:

  • src/main/java java源码
  • src/main/resources 配置文件
  • src/webapp web页面和静态文件资源这里介绍下material-manage的基本目录和开发流程

src/main/java/ 源代码

目录结构如下所示:

material-manage

  • common 该package 封装了一些工具的类库,如一些注解,常量、枚举,异常等公共类

  • config 该package 包含项目支持各种特性的相关配置。例如:

    • 支持swagger在线文档的配置
    • EhCache缓存配置
    • Session配置
    • Shiro配置
    • Beetl模版配置
  • core 该package是项目的核心,包含注入数据源管理、缓存管理、模版管理、aop,监听器以及分页工具、各种工具类(这里自所以有封装自己的工具类而不是放在guns-utils中,是因为这些工具类是与material-manage紧密相关的工具类,并不适用于其他模块)。当然开发人员可以根据项目实际情况做二次调整和封装。

  • modular 该pakcage存放和业务相关的代码。比如目前提供了一个system模块,主要包含诸如:用户、角色、权限、日志等管理功能的系统管理功能。

system包中除了controller包是必须的,其他包都是根据具体情况选择是否需要。业务相关的service、dao、entity写到对应的guns-service/dao/entity 模块中,而不是写在material-manage模块中。

这样设计的目的是因为,大多数实际项目不仅包含后台管理,还可能包括面向客户端的服务,如app或者微信公众号或者pc站,这些服务也需要一套平台比如针对app和微信公众号可能需要一套api系统,那么这时候api系统就可以和material-manage共用service、dao和实体层。

src/webapp web页面和静态文件资源

目录结构如下所示:

material-manage

  • static 目录为静态资源

    • css、fonts,img,js分别为公共的样式、字体,图片,js资源
    • modular 目录为业务用js资源,比如system即为admin内置功能的js资源,其中每个功能使用一个目录和WEB-INF/view/中的目录一一对应guns-web-js
  • WEB-INF/view 为页面目录

    • common 为公共的页面框架和封装的标签目录
    • 其他目录为业务页面目录,比如system即为内置的功能页面包括用户、角色、权限等管理功能的页面guns-web-page