我想创建一个具有 Autowiring 构造函数参数的过滤器/bean,并且对于对某些 url 的每个请求检查 header 并返回 pojo 错误(或者理想情况下抛出将由 spring 处理的异常),或者通过过滤器链。类似的东西
@Bean
class MyFilter {
@Autowired
public MyFilter(MyService myService) {...}
public doFilter(request, response, chain) {
if (request. ...) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST)
// or return new MyErrorPojo()
}
return chain.doFilter(request, response)
}
}
Spring 的做法是什么?
最佳答案
也许这会对你有所帮助。
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@Component
@Order( 1 )
public class RequestFilter implements Filter
{
@Override
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain ) throws IOException, ServletException
{
HttpServletRequest req = ( HttpServletRequest ) request;
if( false )
{
response.getWriter().println( "error" );
throw new ServletException( "" );
}
else
{
doFilter( request, response, chain );
}
}
}
关于java - spring boot - 从过滤器返回 pojo 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089681/