看懂开源项目_业务逻辑

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、新增次要功能特性等