FilterRegistrationBeanAdapter Class — spring-boot Architecture
Architecture documentation for the FilterRegistrationBeanAdapter class in ServletContextInitializerBeans.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java lines 343–392
private static class FilterRegistrationBeanAdapter implements RegistrationBeanAdapter<Filter> {
private final ListableBeanFactory beanFactory;
FilterRegistrationBeanAdapter(ListableBeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
@Override
public RegistrationBean createRegistrationBean(String beanName, Filter source, int totalNumberOfSourceBeans) {
FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>(source);
bean.setName(beanName);
FilterRegistration registrationAnnotation = this.beanFactory.findAnnotationOnBean(beanName,
FilterRegistration.class);
if (registrationAnnotation != null) {
Order orderAnnotation = this.beanFactory.findAnnotationOnBean(beanName, Order.class);
Assert.notNull(orderAnnotation, "'orderAnnotation' must not be null");
configureFromAnnotation(bean, registrationAnnotation, orderAnnotation);
}
return bean;
}
private void configureFromAnnotation(FilterRegistrationBean<Filter> bean, FilterRegistration registration,
Order order) {
bean.setEnabled(registration.enabled());
bean.setOrder(order.value());
if (StringUtils.hasText(registration.name())) {
bean.setName(registration.name());
}
bean.setAsyncSupported(registration.asyncSupported());
if (registration.dispatcherTypes().length > 0) {
bean.setDispatcherTypes(EnumSet.copyOf(Arrays.asList(registration.dispatcherTypes())));
}
bean.setIgnoreRegistrationFailure(registration.ignoreRegistrationFailure());
bean.setMatchAfter(registration.matchAfter());
bean.setServletNames(Arrays.asList(registration.servletNames()));
bean.setUrlPatterns(Arrays.asList(registration.urlPatterns()));
for (WebInitParam param : registration.initParameters()) {
bean.addInitParameter(param.name(), param.value());
}
this.beanFactory.getBeanProvider(ServletRegistrationBean.class).forEach((servletRegistrationBean) -> {
for (Class<?> servletClass : registration.servletClasses()) {
if (servletClass.isInstance(servletRegistrationBean.getServlet())) {
bean.addServletRegistrationBeans(servletRegistrationBean);
}
}
});
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free