Skip to content

基础配置与数据定义

统一响应

平台使用标准restful进行交互,对系统响应进行了封装,类名为R进行返回。

  • R定义存在于sdk-core依赖中,需要使用时可以引用下方依赖引入,当然,这个包在过程中被所有环境依赖,可以忽略
xml
<dependency>
    <groupId>com.ikingtech.framework</groupId>
    <artifactId>sdk-core</artifactId>
</dependency>
  • 以下是当前版本的内容定义,以最终代码实现为准
字段名字段类型说明
codeInteger响应码。
0:接口请求成功
1:接口请求失败
msgString响应信息。
请求成功时固定返回“操作成功”。
请求失败是返回相应的失败原因。
data<T>响应数据。
pagesLong数据总页数。
分页查询时返回。
totalLong数据总条数。
分页查询时返回。
successBoolean请求是否成功。
true:请求成功
false:请求失败
timestampLocalDatetime请求执行时间。
格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8。

统一异常定义

平台定义了统一异常,类名为FrameworkException,异常定义存在于sdk-core依赖中,抛出的异常将被统一异常处理并推送至日志中心。

  • 字段
字段名类型说明
messageString异常信息。
moduleNameString发生异常的模块名。

分页查询参数基类

平台对分页查询请求基类的定义为PageParam,位于sdk-base依赖中,使用时可通过继承该基类获得参数。

  • 您可以通过一下坐标获得该类定义
xml
<dependency>
    <groupId>com.ikingtech.framework</groupId>
    <artifactId>sdk-base</artifactId>
</dependency>
  • 字段说明
字段名类型说明
pageInteger页码。
如查询第3页的20条数据,则page设置为3,rows设置为20。
rowsInteger行数。
如查询第3页的20条数据,则page设置为3,rows设置为20。

分页查询结果基类

平台对分页查询结果的定义为PageResult<T>,可以通过依赖sdk-base获得能力,当然您也可以自由返回您自由定义的类,但是不建议破坏平台结构。

  • 字段说明
字段名类型说明
pagesLong总页数。
totalInteger总行数。
dataList<T>数据列表。

排序参数基类

功能设计中,允许前端指定排序方向和指定排序字段,类的定义为OrderParam, 可以通过依赖sdk-base获得能力

  • 字段说明
字段名类型说明
orderString排序方向。
ASC:升序
DESC:降序
orderByString排序字段名。

批量查询参数基类

当使用列表(List)作为查询参数时,有时会产生意料外的错误,因此建议统一使用本类进行参数封装。类定义为BatchParam<T>,位于sdk-base中。

  • 字段说明
字段名类型说明
listList<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;
}

说明:

  1. 业务中可注入MessageSource,并使用getMessage方法获取相应的国际化信息。
  2. 当前请求的使用的语言可通过Me.lang()方法获取。
  3. 当前版本支持的国际化语言种类为中文(zh-CN)英文(eu-US)
  4. 当前版本平台所有接口的返回信息均支持国际化配置,但尚不支持业务方自定义国际化配置信息,项目组如有国际化需求,请与开发者联系。

线程池配置

使用ThreadPoolTaskExecutor创建了全局线程池,并进行了如下配置:

配置项配置值说明
corePoolSize50核心线程数
maxPoolSize200最大线程数
queueCapacity20000线程队列容量
keepAliveSeconds60秒线程活跃时间
waitForTasksToCompleteOnShutdowntrue等待所有线程结束后关闭线程池
awaitTerminationSeconds15分钟若超过15分钟线程仍未销毁则强制销毁