liukx@elab 7ae077c7f9 14版本 4 vuotta sitten
..
src 7ae077c7f9 14版本 4 vuotta sitten
README.md 7ef98f389e 14版本 4 vuotta sitten
pom.xml 7ef98f389e 14版本 4 vuotta sitten

README.md

Elab-Spring

该项目用来针对一些Spring的拓展做一些统一的封装使得在使用上非常方便

这里只是大概介绍一下功能的使用。

直接使用的话

// 如果有相应的配置文件参数,需要将配置文件注入到里面来
@PropertySource(value = {"classpath:database.properties","classpath:autoConfig.properties"},encoding = "UTF-8")
// 直接导入相关的配置类
@Import({SpringCommonConfig.class, DataSourceConfigBean.class, JdbcBeanConfig.class, TransactionConfigBean.class})

功能介绍

SpringCommonConfig:基本的Spring相关的配置

封装了ClientHttpRequestFactory、RestTemplate、PropertyPlaceholderConfigurer等类.

有一些可变的参数可以再配置文件中指定,这里面的数据都是默认值,可以不填写

# httpClient连接数
httpClient.connect.timeOut=120000
# httpClient超时时间
httpClient.read.timeOut=120000
# 读取property配置文件的路径
spring.resources.path=classpath:*.properties

DataSourceConfigBean : 数据源配置


default.driverClassName=
default.url=
default.username=
default.password=
default.filters=
default.initialSize=5
default.minIdle=10
default.maxActive=50

JdbcBeanConfig : JDBC封装类配置

可选配置

# jdbc的sql文件目录
jdbc.config.path=sql

# dao接口层扫描
jdbc.config.scan=com.elab.**

TransactionConfigBean : 事物配置

针对事物相关的类进行配置

这里需要注意的是一般 TransactionConfigBean、JdbcBeanConfig 依赖 DataSourceConfigBean 所以使用的时候,需要将这三个类都一次性导入

SpringMvcConfig : 基本的SpringMVC容器相关的配置

封装了MultipartResolver等相关配置

# 文件上传大小配置
mvc.multipartResolver.MaxUploadSize=10485760

CommonException : 全局异常定义

直接注入就拥有全局异常功能

LogResponseBodyAdvice : 日志id作为结果集返回

直接注入拥有全局返回日志id的功能

SwaggerConfigBean : api对象配置

#是否开启swagger
swagger.enable=必填
# controller路径
swagger2.basePackage=必填
# api的标题
swagger2.title=必填
# 描述
swagger2.description=必填
# 团队服务的URL
swagger2.termsOfServiceUrl=必填
# 许可证地址
swagger2.licenseUrl=必填
# 版本号
swagger2.version=必填

RestTemplateUtils

  • 新增IRestFallback回调接口
    • DefaultRestFallBack 默认的回调 : 一旦请求出现异常,则将该次请求数据记录到mng_http_failure_data表中 > 如果业务有特殊处理,可以实现该接口去覆盖DefaultRestFallBack类的实现。
CREATE TABLE `mng_http_failure_data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(200) DEFAULT NULL COMMENT '请求路径',
  `req_method` varchar(10) DEFAULT NULL COMMENT '请求方式 GET/POST',
  `req_body` text COMMENT '请求参数',
  `res_body` text COMMENT '返回结果',
  `header_body` text COMMENT '请求头信息',
  `req_retry` int(11) DEFAULT NULL COMMENT '请求重试次数',
  `req_status` int(11) DEFAULT NULL COMMENT '请求状态 -1失败 1成功 ',
  `cat_id` varchar(50) DEFAULT NULL COMMENT '链路编号',
  `error_msg` varchar(500) DEFAULT NULL,
  `status` int(11) DEFAULT NULL COMMENT '状态:1  有效  -1  无效',
  `created` datetime DEFAULT NULL COMMENT '创建时间',
  `updated` datetime DEFAULT NULL COMMENT '修改时间',
  `creator` varchar(20) DEFAULT NULL COMMENT '创建者',
  `updator` varchar(20) DEFAULT NULL COMMENT '修改者',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='http故障数据记录';

如何应用到业务中

  1. 配置类 ```java @Bean public IRestFallback restFallback() { DefaultRestFallBack restFallBack = new DefaultRestFallBack(); return restFallBack; }

@Bean public RestTemplateUtils restTemplateUtils(@Autowired RestTemplate restTemplate) { RestTemplateUtils restTemplateUtils = new RestTemplateUtils(); restTemplateUtils.setRestTemplate(restTemplate); // 将默认的配置类加入到其中 restTemplateUtils.setRestFallback(restFallback()); return restTemplateUtils; }


具体使用:

```java

// 默认采用的失败回调 -> DefaultRestFallBack
String post = restTemplateUtils.post(url, jsonObject,
  String.class);

// 自定义采用的失败回调 --> 实现IRestFallback接口 = MyRestFallBack
String post = restTemplateUtils.post(url, jsonObject,
  String.class, new MyRestFallBack());