OpeningO-spring-boot-xSpring Boot 扩展
spring-boot-x是springboot应用的扩展。
特性清单
-
手动事务管理 [2021.6.29更新]
-
分布式id生成器gedid,DidLoader [ 2021.6.25更新 ]
-
Safety工具 [ 2021.6.25更新 ]
-
请求日志,包括请求源、请求目标、请求参数、处理时间、错误异常等信息;
-
请求响应参数的自动装配(映射);
-
跨域的配置;
-
嵌入
SpringBoot的异常处理机制,可以将原来的错误信息中插入其他信息、或将其解析或转换为其他信息; -
如
SpringBoot之starter动态装配或在yml中配置相关特性; -
简化的
Redis操作; -
提炼
Elasticsearch之HighlevelClient常用操作; -
feign的请求头参数的处理:合并上下游的请求头参数,并发场景的数据处理策略; -
基于
Druid和Hikari的动态路由RoutingDataSource; -
SpringBoot应用的配置信息的自动拷贝;
1. 请求日志
**************************************************************** :: SpringApplicationX :: for current request report information **************************************************************** Client IP : 127.0.0.1 Request Time : 2020-07-12T19:24:40.249 Controller : org.openingo.x.controller.UserController.(UserController.java:1) URI : http://localhost:8080/json Handler(Action) : json Method : GET Processing Time : 0.002s Header(s) : [user-agent:"PostmanRuntime/7.25.0", cache-control:"no-cache", postman-token:"b29a0616-7e31-4150-b022-4bf3680bf771", host:"localhost:8080", accept-encoding:"gzip, deflate, br", connection:"keep-alive", content-length:"21", Content-Type:"application/json;charset=UTF-8"] Body : {"name":"qicz"} Response : {"name":"qicz","age":18} ----------------------------------------------------------------
2. 错误处理
可以继承AbstractServiceErrorAttributes,扩展exception的处理
{
"timestamp": "2020-07-13T05:49:06.071+0000",
"status": 500,
"error": "Internal Server Error",
"exception": "org.openingo.spring.exception.ServiceException",
"message": "testing exception",
"path": "/ex",
"handler": "public java.util.Map org.openingo.x.controller.UserController.ex()",
"openingo.error": {
"ex": "org.openingo.spring.exception.ServiceException: testing exception",
"em": "testing exception",
"error": "Internal Server Error",
"ec": "ERROR_CODE"
}
}
3. 使用及配置
加入spring-boot-x依赖(已托管在中央仓库),在启动class上加入@EnableExtension注解即可使用spring-boot-x的扩展功能。
通过application.yml/application.properties可以对请求日志redis等操作进行开关。默认情况下,请求日志及错误扩展为开启状态。
openingo:
redis:
enable: true
http:
request:
cors:
allowed-header: "*"
enable: true
allowed-all: true
log:
enable: true
error:
enable: true
评论
