# request-spring-boot
**Repository Path**: null_257_5769/request-spring-boot
## Basic Information
- **Project Name**: request-spring-boot
- **Description**: request-spring-boot-starter 对是一个 request/response,jdk8日期,跨域请求,国际化的增强包
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 4
- **Created**: 2019-02-21
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 简介
`request-spring-boot-starter` 对是一个 `request/response` 的增强包,每个功能都是通过注解形式开启,不会有任何额外的影响开销
比如只想用日期格式化 `@EnableLocalDateTimeFormat` 即可,其它无关的 `Bean` 就不会被初始化,不会造成资源浪费
> 特点
- 使 `spring.jackson.date-format` 属性支持 `JDK8` 日期格式化
- 解决 `request.getInputStream()` 一次读取后失效痛点
- 国际化支持
- 全局跨域支持
# 使用方法
``` xml
com.battcn
request-spring-boot-starter
1.0.7-RELEASE
```
> 注意事项
**如果你想使用 `EnableRedis` 相关组件,你需要额外依赖**
``` xml
org.springframework.boot
spring-boot-starter-data-redis
```
**如果你想使用 `EnableRequestWrapperFilter` 相关组件,你需要额外依赖**
``` xml
commons-io
commons-io
2.6
```
**如果你想使用 `EnableXssFilter` 相关组件,你需要额外依赖**
``` xml
org.apache.commons
commons-text
1.6
```
在主函数(Application.java) 中添加相应注解即可
``` java
import com.battcn.boot.request.annotation.*;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author Levin
*/
@EnableI18n
@EnableCorsFilter
@EnableLocalDateTimeFormat
@EnableRequestWrapperFilter
@EnableRedisLock
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
## 注解介绍
> @EnableXssFilter
添加对 XSS 攻击转义的支持
> @EnableRedisLimit
添加分布式限流的支持,在启动类上加上该注解即可,然后在请求的接口上面加上`@RedisLimit`
> @EnableRedisLock
添加分布式锁的支持,在启动类上加上该注解即可,然后在请求的接口上面加上`@RedisLock`
> @EnableI18n
`I18N` 国际化支持
> @EnableCorsFilter
全局跨域支持
> EnableRequestWrapperFilter
继承 `HttpServletRequestWrapper` 实现`BodyCacheHttpServletRequestWrapper`,解决 `request.getInputStream()` 一次读取后失效痛点
> EnableLocalDateTimeFormat
使 `spring.jackson.date-format` 属性支持 `JDK8` 日期格式化