feat(core): 新增 OrderedConstants 统一登记过滤器和拦截器相关顺序常量,并调整相关过滤器和拦截器顺序

This commit is contained in:
2025-07-22 20:53:59 +08:00
parent 3e822c0b84
commit a392fab782
8 changed files with 111 additions and 22 deletions

View File

@@ -22,8 +22,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import top.continew.starter.core.constant.OrderedConstants;
import top.continew.starter.log.annotation.ConditionalOnEnabledLog;
import top.continew.starter.log.aspect.AccessLogAspect;
import top.continew.starter.log.aspect.LogAspect;
@@ -61,8 +63,11 @@ public class LogAutoConfiguration {
*/
@Bean
@ConditionalOnMissingBean
public LogFilter logFilter() {
return new LogFilter(logProperties);
public FilterRegistrationBean<LogFilter> logFilter() {
FilterRegistrationBean<LogFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new LogFilter(logProperties));
registrationBean.setOrder(OrderedConstants.Filter.LOG_FILTER);
return registrationBean;
}
/**

View File

@@ -22,7 +22,6 @@ import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.core.Ordered;
import org.springframework.lang.NonNull;
import org.springframework.web.filter.OncePerRequestFilter;
import top.continew.starter.core.wrapper.RepeatReadRequestWrapper;
@@ -40,7 +39,7 @@ import java.net.URISyntaxException;
* @author echo
* @since 1.1.0
*/
public class LogFilter extends OncePerRequestFilter implements Ordered {
public class LogFilter extends OncePerRequestFilter {
private final LogProperties logProperties;
@@ -48,11 +47,6 @@ public class LogFilter extends OncePerRequestFilter implements Ordered {
this.logProperties = logProperties;
}
@Override
public int getOrder() {
return Ordered.LOWEST_PRECEDENCE - 10;
}
@Override
protected void doFilterInternal(@NonNull HttpServletRequest request,
@NonNull HttpServletResponse response,

View File

@@ -22,10 +22,12 @@ import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import top.continew.starter.core.constant.OrderedConstants;
import top.continew.starter.core.constant.StringConstants;
import top.continew.starter.log.annotation.ConditionalOnEnabledLog;
import top.continew.starter.log.dao.LogDao;
@@ -59,7 +61,8 @@ public class LogAutoConfiguration implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LogInterceptor(logProperties, logHandler(), logDao()))
.addPathPatterns(StringConstants.PATH_PATTERN)
.excludePathPatterns(logProperties.getExcludePatterns());
.excludePathPatterns(logProperties.getExcludePatterns())
.order(OrderedConstants.Interceptor.LOG_INTERCEPTOR);
}
/**
@@ -67,8 +70,11 @@ public class LogAutoConfiguration implements WebMvcConfigurer {
*/
@Bean
@ConditionalOnMissingBean
public LogFilter logFilter() {
return new LogFilter(logProperties);
public FilterRegistrationBean<LogFilter> logFilter() {
FilterRegistrationBean<LogFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(new LogFilter(logProperties));
registrationBean.setOrder(OrderedConstants.Filter.LOG_FILTER);
return registrationBean;
}
/**