Если MyFilter
создается только один раз (одноэлементно), то он может быть компонентом, что означает, что он будет автоматически подключен автоматически.
@Component
MyFilter implements Filter {
private final ServiceToBeInjected;
// Autowired implicitly
public MyFilter(ServiceToBeInjected serviceToBeInjected) {
this.serviceToBeInjected = serviceToBeInjected;
}
}
Ваш компонент может затем использовать фильтр в качестве параметра метода
public class ConfigClass {
@Bean
public FilterRegistrationBean<MyFilter> foo(final MyFilter filter) {
final FilterRegistrationBean<MyFilter> bean = new FilterRegistrationBean<>();
bean.setFilter(filter);
bean.addUrlPatterns("");
return bean;
}
}
Если MyFilter
нужно построить более одного раза, то то, что вы сделали, прекрасно.