编写版本:v3.5.3
适用版本:所有
代码结构规范
在此文档中会以骨架项目为例来描述IBPS的目录结构。
下图为骨架项目的相关工程,文档会以每个工程的作用及包含何种类型的文件展开。
注意:
ibps-provider-skeleton-other和ibps-provider-skeleton-saas与ibps-provider-skeleton结构一致,other和saas就不再赘述了。ibps-provider-skeleton-spring-boot-sample与ibps-provider-skeleton-spring-boot同理。
ibps-provider-skeleton
1、com.lc.ibps:
(1)config内为骨架启动初始化配置类。
(2)SkeletonApplication:骨架服务的启动类。
(3)skeleton文件夹:
- mapper:映射接口文件。
- provider:controller层,主要负责接受前台的数据和请求,并且在底层处理完之后把结果返回。
2、conf:
内部主要包含不同环境的数据源配置文件和项目配置文件。数据源配置文件的具体使用可以参考这里。
3、config:
(1)application.yml 为IBPS用来定义应用级别的配置文件。应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。
系统的配置文件读取、系统环境切换、swagger配置及MQ部分配置等一系列功能在此文件配置。
(2)application-app.yml 为IBPS的环境变量配置文件。IBPS的各类开关、配置类变量都在该文件中配置。
变量的使用方法有多种。
配置类。
@Value注解。
使用IBPS包装的AppUtil.getProperty(),具体使用请查看代码。
(3)application-xxxx.yml。
application-dev.yml、application-test.yml和application-prod.yml分别对应dev
,test
,prod
环境。IBPS不同环境的端口号、端口等参数化配置在此处。
(4)bootstrap.yml
bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。
微服务的 注册中心、配置中心、项目名称spring.application.name
以nacos为例:
(5)caffeine.properties
Caffeine 是基于Java 8 开发的、提供了近乎最佳命中率的高性能本地缓存组件。
caffeine.properties为其配置文件。
(6)log4j2.yml
IBPS日志系统的相关配置。
4、i18n:
国际化的相关配置文件,具体使用见骨架代码的例子。
ibps-provider-skeleton-api
api:模块的请求API接口层。
其他服务调用该模块的相关接口需要通过API接口层。
ibps-provider-skeleton-client
client:模块的client。其他服务调用该服务接口是通过client实现的。
注意:在继承service时,需要加上@FeignClient注解。
ibps-skeleton-biz
biz为该模块的业务层。
(1)Dao及其实现类:
dao分为Dao和QueryDao。
- Dao(增删改):对于数据库表数据进行增删改操作。
- QueryDao(查):对于数据库表数据进行查询操作。
(2)Domain:
领域驱动类,用于业务数据的增删改。领域驱动类可看做传统框架的业务层(Service层)。通过Domain可进行相关业务逻辑实现,可实现操作的前后置处理、缓存组件集成、日志生成、数据批处理等功能。
(3)Repository:
查询仓库类,用于数据的查询。查询仓库类可看做传统框架的持久层(DAO层)。通过Repository可以实现数据的查询,缓存组件集成、复杂条件组合查询等功能。
ibps-skeleton-model
(1)entity:
entity文件夹中为其模块对应的持久层对象。
- PO在IBPS中为实体对象,其继承表对象,即PO对象是表对象的子类。
- 表对象(TBL)继承抽象PO,其对应着数据库表。表对象的一个属性与表的每一个字段相对应。
(2)mapping:
SQL Map XML映射文件在该文件中。
(3)model:
用于数据传递的对象。