基础配置与数据定义
统一响应
平台使用标准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分钟线程仍未销毁则强制销毁 |