swagger ui 优化
无效类去除精简 修改用户上下文获取request/response的方式
This commit is contained in:
@@ -108,11 +108,6 @@
|
||||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||
<version>${knife4j.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>swagger-bootstrap-ui</artifactId>
|
||||
<version>${swagger-bootstrap-ui-version}</version>
|
||||
</dependency>
|
||||
<!-- Hutool工具包 -->
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
package cn.lili.common.context;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
/**
|
||||
* 过滤路径
|
||||
* @author Chopper
|
||||
*/
|
||||
@Configuration
|
||||
public class ContextConfiguration implements WebMvcConfigurer {
|
||||
|
||||
@Override
|
||||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
registry.addInterceptor(new ThreadContextHolderInterceptorAdapter()).addPathPatterns("/**");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,39 +1,29 @@
|
||||
package cn.lili.common.context;
|
||||
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* 用户上下文
|
||||
* request / response 获取工具
|
||||
*
|
||||
* @author paulG
|
||||
* @since 2020/10/16
|
||||
**/
|
||||
public class ThreadContextHolder {
|
||||
|
||||
private static final ThreadLocal<HttpServletRequest> REQUEST_THREAD_LOCAL_HOLDER = new ThreadLocal<>();
|
||||
private static final ThreadLocal<HttpServletResponse> RESPONSE_THREAD_LOCAL_HOLDER = new ThreadLocal<>();
|
||||
|
||||
public static void remove() {
|
||||
REQUEST_THREAD_LOCAL_HOLDER.remove();
|
||||
RESPONSE_THREAD_LOCAL_HOLDER.remove();
|
||||
}
|
||||
|
||||
public static HttpServletResponse getHttpResponse() {
|
||||
|
||||
return RESPONSE_THREAD_LOCAL_HOLDER.get();
|
||||
}
|
||||
|
||||
public static void setHttpResponse(HttpServletResponse response) {
|
||||
RESPONSE_THREAD_LOCAL_HOLDER.set(response);
|
||||
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||
assert servletRequestAttributes != null;
|
||||
return servletRequestAttributes.getResponse();
|
||||
}
|
||||
|
||||
public static HttpServletRequest getHttpRequest() {
|
||||
return REQUEST_THREAD_LOCAL_HOLDER.get();
|
||||
}
|
||||
|
||||
public static void setHttpRequest(HttpServletRequest request) {
|
||||
|
||||
REQUEST_THREAD_LOCAL_HOLDER.set(request);
|
||||
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||
assert servletRequestAttributes != null;
|
||||
return servletRequestAttributes.getRequest();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
package cn.lili.common.context;
|
||||
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
|
||||
/**
|
||||
* request response 填充
|
||||
*
|
||||
* @author Chopper
|
||||
* @version v4.0
|
||||
* @since 2020/12/9 10:44
|
||||
*/
|
||||
public class ThreadContextHolderInterceptorAdapter extends HandlerInterceptorAdapter {
|
||||
|
||||
|
||||
/**
|
||||
* 拦截request和response并放到上下文中
|
||||
*
|
||||
* @param request 请求
|
||||
* @param response 响应
|
||||
* @param handler 处理程序
|
||||
* @return 处理结果
|
||||
* @throws Exception 未知异常
|
||||
*/
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request,
|
||||
HttpServletResponse response, Object handler) throws Exception {
|
||||
|
||||
ThreadContextHolder.setHttpResponse(response);
|
||||
ThreadContextHolder.setHttpRequest(request);
|
||||
|
||||
return super.preHandle(request, response, handler);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 从上下文中移除 request 和response
|
||||
*
|
||||
* @param request 请求
|
||||
* @param response 响应
|
||||
* @param handler 处理程序
|
||||
* @param ex 异常
|
||||
* @throws Exception 完成之前处理异常
|
||||
*/
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
|
||||
ThreadContextHolder.remove();
|
||||
|
||||
super.afterCompletion(request, response, handler, ex);
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package cn.lili.common.context.interceptor;
|
||||
|
||||
import cn.lili.common.context.ThreadContextHolder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* 写入request/response
|
||||
*
|
||||
* @author Chopper
|
||||
* @version v1.0
|
||||
* @since 2020-06-13 13:38
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class RequestInterceptorAdapter extends HandlerInterceptorAdapter {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
|
||||
Object handler) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response,
|
||||
Object handler, ModelAndView modelAndView) throws Exception {
|
||||
|
||||
ThreadContextHolder.setHttpResponse(response);
|
||||
ThreadContextHolder.setHttpRequest(request);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
|
||||
Object handler, Exception ex) throws Exception {
|
||||
ThreadContextHolder.remove();
|
||||
|
||||
super.afterCompletion(request, response, handler, ex);
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package cn.lili.common.context.interceptor;
|
||||
|
||||
import cn.lili.common.properties.IgnoredUrlsProperties;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
/**
|
||||
* 过滤路径
|
||||
*
|
||||
* @author Chopper
|
||||
*/
|
||||
@Configuration
|
||||
public class UrlConfiguration implements WebMvcConfigurer {
|
||||
@Autowired
|
||||
private IgnoredUrlsProperties ignoredUrlsProperties;
|
||||
@Autowired
|
||||
private RequestInterceptorAdapter requestInterceptorAdapter;
|
||||
|
||||
@Override
|
||||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
//注册拦截器
|
||||
InterceptorRegistration ir = registry.addInterceptor(requestInterceptorAdapter);
|
||||
//配置拦截的路径
|
||||
ir.addPathPatterns("/**");
|
||||
//配置不拦截的路径
|
||||
ir.excludePathPatterns(ignoredUrlsProperties.getUrls());
|
||||
}
|
||||
|
||||
/**
|
||||
* 开放资源 这里配置swagger可以在前端访问
|
||||
*
|
||||
* @param registry 资源处理
|
||||
*/
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
registry.addResourceHandler("/statics/**").addResourceLocations("classpath:/statics/");
|
||||
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
||||
//解决 SWAGGER 404报错
|
||||
registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package cn.lili.modules.connect.entity.enums;
|
||||
|
||||
import cn.lili.common.utils.StringUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user