Home / Class/ ServletRegistrationBeanAdapter Class — spring-boot Architecture

ServletRegistrationBeanAdapter Class — spring-boot Architecture

Architecture documentation for the ServletRegistrationBeanAdapter 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 284–332

	private static class ServletRegistrationBeanAdapter implements RegistrationBeanAdapter<Servlet> {

		private final @Nullable MultipartConfigElement multipartConfig;

		private final ListableBeanFactory beanFactory;

		ServletRegistrationBeanAdapter(@Nullable MultipartConfigElement multipartConfig,
				ListableBeanFactory beanFactory) {
			this.multipartConfig = multipartConfig;
			this.beanFactory = beanFactory;
		}

		@Override
		public RegistrationBean createRegistrationBean(String beanName, Servlet source, int totalNumberOfSourceBeans) {
			String url = (totalNumberOfSourceBeans != 1) ? "/" + beanName + "/" : "/";
			if (beanName.equals(DISPATCHER_SERVLET_NAME)) {
				url = "/"; // always map the main dispatcherServlet to "/"
			}
			ServletRegistrationBean<Servlet> bean = new ServletRegistrationBean<>(source, url);
			bean.setName(beanName);
			bean.setMultipartConfig(this.multipartConfig);
			ServletRegistration registrationAnnotation = this.beanFactory.findAnnotationOnBean(beanName,
					ServletRegistration.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(ServletRegistrationBean<Servlet> bean, ServletRegistration registration,
				Order order) {
			bean.setEnabled(registration.enabled());
			bean.setOrder(order.value());
			if (StringUtils.hasText(registration.name())) {
				bean.setName(registration.name());
			}
			bean.setAsyncSupported(registration.asyncSupported());
			bean.setIgnoreRegistrationFailure(registration.ignoreRegistrationFailure());
			bean.setLoadOnStartup(registration.loadOnStartup());
			bean.setUrlMappings(Arrays.asList(registration.urlMappings()));
			for (WebInitParam param : registration.initParameters()) {
				bean.addInitParameter(param.name(), param.value());
			}
			bean.setMultipartConfig(new MultipartConfigElement(registration.multipartConfig()));
		}

	}

Domain

Analyze Your Own Codebase

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

Try Supermodel Free