基础配置与数据定义
统一响应
平台使用标准restful进行交互,对系统响应进行了封装,类名为R进行返回。
R定义存在于sdk-core依赖中,需要使用时可以引用下方依赖引入,当然,这个包在过程中被所有环境依赖,可以忽略
xml
<dependency>
<groupId>com.ikingtech.framework</groupId>
<artifactId>sdk-core</artifactId>
</dependency>- 以下是当前版本的内容定义,以最终代码实现为准
| 字段名 | 字段类型 | 说明 |
|---|---|---|
| code | Integer | 响应码。 0:接口请求成功 1:接口请求失败 |
| msg | String | 响应信息。 请求成功时固定返回“操作成功”。 请求失败是返回相应的失败原因。 |
| data | <T> | 响应数据。 |
| pages | Long | 数据总页数。 分页查询时返回。 |
| total | Long | 数据总条数。 分页查询时返回。 |
| success | Boolean | 请求是否成功。 true:请求成功 false:请求失败 |
| timestamp | LocalDatetime | 请求执行时间。 格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8。 |
统一异常定义
平台定义了统一异常,类名为FrameworkException,异常定义存在于sdk-core依赖中,抛出的异常将被统一异常处理并推送至日志中心。
- 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
| message | String | 异常信息。 |
| moduleName | String | 发生异常的模块名。 |
分页查询参数基类
平台对分页查询请求基类的定义为PageParam,位于sdk-base依赖中,使用时可通过继承该基类获得参数。
- 您可以通过一下坐标获得该类定义
xml
<dependency>
<groupId>com.ikingtech.framework</groupId>
<artifactId>sdk-base</artifactId>
</dependency>- 字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| page | Integer | 页码。 如查询第3页的20条数据,则page设置为3,rows设置为20。 |
| rows | Integer | 行数。 如查询第3页的20条数据,则page设置为3,rows设置为20。 |
分页查询结果基类
平台对分页查询结果的定义为PageResult<T>,可以通过依赖sdk-base获得能力,当然您也可以自由返回您自由定义的类,但是不建议破坏平台结构。
- 字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| pages | Long | 总页数。 |
| total | Integer | 总行数。 |
| data | List<T> | 数据列表。 |
排序参数基类
功能设计中,允许前端指定排序方向和指定排序字段,类的定义为OrderParam, 可以通过依赖sdk-base获得能力
- 字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| order | String | 排序方向。 ASC:升序 DESC:降序 |
| orderBy | String | 排序字段名。 |
批量查询参数基类
当使用列表(List)作为查询参数时,有时会产生意料外的错误,因此建议统一使用本类进行参数封装。类定义为BatchParam<T>,位于sdk-base中。
- 字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| list | List<T> | 当使用列表(List)作为查询参数时,有时会产生意料外的错误,因此建议统一使用本类进行参数封装。 |
国际化配置
java
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:i18n/messages");
messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name());
return messageSource;
}
@Bean
LocalValidatorFactoryBean validator(MessageSource messageSource) {
LocalValidatorFactoryBean validatorFactory = new LocalValidatorFactoryBean();
validatorFactory.setValidationMessageSource(messageSource);
return validatorFactory;
}说明:
- 业务中可注入
MessageSource,并使用getMessage方法获取相应的国际化信息。 - 当前请求的使用的语言可通过
Me.lang()方法获取。 - 当前版本支持的国际化语言种类为
中文(zh-CN)和英文(eu-US)。 - 当前版本平台所有接口的返回信息均支持国际化配置,但尚不支持业务方自定义国际化配置信息,项目组如有国际化需求,请与开发者联系。
线程池配置
使用ThreadPoolTaskExecutor创建了全局线程池,并进行了如下配置:
| 配置项 | 配置值 | 说明 |
|---|---|---|
| corePoolSize | 50 | 核心线程数 |
| maxPoolSize | 200 | 最大线程数 |
| queueCapacity | 20000 | 线程队列容量 |
| keepAliveSeconds | 60秒 | 线程活跃时间 |
| waitForTasksToCompleteOnShutdown | true | 等待所有线程结束后关闭线程池 |
| awaitTerminationSeconds | 15分钟 | 若超过15分钟线程仍未销毁则强制销毁 |