spring 启动过滤器使用的注入依赖

Injection Dependency of spring boot filter usage

我正在练习 spring 启动 API 访问令牌项目,这是我的问题。

这是我的过滤器文件,我正在尝试扩展 OncePerRequestFilter 并使用 @RequiredArgsConstructor 注释将三个参数注入到过滤器中。

@Component
@RequiredArgsConstructor
public class LogInFilter extends OncePerRequestFilter {

  private final OAuthService oAuthService;
  private final AccessTokenService accessTokenService;
  private final ObjectMapper mapper;

这是@Bean

@Configuration
public class ApplicationConfig {

@Bean
  public FilterRegistrationBean logInFilter() {
    ObjectMapper mapper = new ObjectMapper();
    FilterRegistrationBean bean = new FilterRegistrationBean(new LogInFilter());
    bean.addUrlPatterns("/test/api");
    bean.setOrder(Integer.MIN_VALUE);
    return bean;
  }

而且我不知道如何将这三个参数作为构造函数放入上面的新 LogInFilter()

这样做

@Bean
public FilterRegistrationBean logInFilterRegistration(LogInFilter logInFilter) {
  FilterRegistrationBean bean = new FilterRegistrationBean(logInFiliter);
  bean.addUrlPatterns("/test/api");
  bean.setOrder(Integer.MIN_VALUE);
  return bean;
}

您的过滤器带有 @Component 注释,因此 Spring 将自动创建一个实例,您可以像这样使用它。