Home / Class/ FilterRegistrationBeanAdapter Class — spring-boot Architecture

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

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free