springboot典型项目结构:
根目录/src/main/java
:放置项目java源代码
|_annotation:放置项目自定义注解
|_aspect:放置切面代码
|_config:放置配置类
|_constant:放置常量、枚举等定义
|_consist:存放常量定义
|_enums:存放枚举定义
|_controller:放置控制器代码
|_filter:放置一些过滤、拦截相关的代码
|_mapper:放置数据访问层代码接口
|_model:放置数据模型代码
|_entity:放置数据库实体对象定义
|_dto:存放数据传输对象定义
|_vo:存放显示层对象定义
|_service:放置具体的业务逻辑代码
|_intf:存放业务逻辑接口定义
|_impl:存放业务逻辑实际实现
|_utils:放置工具类和辅助代码
根目录/src/main/resources
:放置项目静态资源和配置文件
|_mapper:存放mybatis的xml映射文件(如果是mybatis项目)
|_static:存放网页静态资源
|_template:存放模板
|_application.yml:基本配置文件
根目录/src/test/java
:放置项目测试用例代码
分层领域模型规约
DO(Data Object):此对象与数据库表结构一一对应,通过DAO层向上传输数据源对象
DTO(Data Transfer Object):数据传输对象,service或manager向外传输的对象
BO(Business Object):业务对象,可以有service层输出的封装业务逻辑的对象
Query:数据查询对象,各层接受上层的查询请求
VO(View Object):显示层对象,通常是web向模板渲染引擎层传输的对象
依赖
一方库:本工程中的各模块的相互依赖
二方库:公司内部的依赖库,一般指公司内部的其他项目发布的jar包
三方库:公司之外的开源库,比如apache、ibm等发布的姨来
二方库依赖规约
定义GAV
G:GroupID
com.{公司/BU}.业务线[.子业务线],最多四级
A:ArtifactID
产品线名-模块名
V:Version
主版本号.次版本号.修订号
主版本号:产品方向改变,或者大规模API不兼容,或者架构不兼容升级
次版本号:保持相对兼容性,增加主要功能特性,影响范围极小的API不兼容修改
修订号:保持完全兼容性,修复bug、新增次要功能特性等