Class JmixVaadinServletConfiguration

java.lang.Object
io.jmix.autoconfigure.ui.vaadin.JmixVaadinServletConfiguration
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean

@Configuration @EnableConfigurationProperties(VaadinServletConfigurationProperties.class) public class JmixVaadinServletConfiguration extends Object implements org.springframework.beans.factory.InitializingBean
Spring configuration that sets up a SpringVaadinServlet. If you want to customize the servlet, extend it and make it available as a Spring bean.

By default, unless a custom mapping of the Vaadin servlet is performed using the URL mapping configuration property VaadinServletConfigurationProperties.getUrlMapping(), the Vaadin servlet is mapped to a hidden path not to block requests destined to DispatcherServlet. ServletForwardingController is then mapped so that requests to all SpringUI paths are forwarded to the servlet for the generation of a bootstrap page, which internally uses the Vaadin servlet path for all other communication.

This approach currently relies on a hack that modifies request servlet path and path info on the fly as those produced by ServletForwardingController are not what VaadinServlet expects. See SpringVaadinServlet for more information on this. Exposes JmixVaadinServlet.

  • Field Details

    • DEFAULT_SERVLET_URL_MAPPING

      public static final String DEFAULT_SERVLET_URL_MAPPING
      See Also:
    • STATIC_RESOURCES_URL_MAPPING

      public static final String STATIC_RESOURCES_URL_MAPPING
      Mapping for static resources that is used in case a non-default mapping is used as the primary mapping.
      See Also:
    • applicationContext

      @Autowired protected org.springframework.context.ApplicationContext applicationContext
    • configurationProperties

      @Autowired protected VaadinServletConfigurationProperties configurationProperties
    • uiProperties

      @Autowired protected UiProperties uiProperties
  • Constructor Details

    • JmixVaadinServletConfiguration

      public JmixVaadinServletConfiguration()
  • Method Details

    • vaadinUiForwardingHandlerMapping

      @Bean public org.springframework.web.servlet.handler.SimpleUrlHandlerMapping vaadinUiForwardingHandlerMapping()
    • getUIPaths

      protected List<String> getUIPaths()
    • getLogger

      protected org.slf4j.Logger getLogger()
    • vaadinUiForwardingController

      @Bean public org.springframework.web.servlet.mvc.Controller vaadinUiForwardingController()
      Forwarding controller that sends requests for the root page of Vaadin servlets to the Vaadin servlet.
      Returns:
      forwarding controller
    • isMappedToRoot

      protected boolean isMappedToRoot()
      Returns true if the Vaadin servlet is mapped to the context root, false otherwise.
      Returns:
      true if the Vaadin servlet is mapped to the context root
    • getUrlMappings

      protected String[] getUrlMappings()
    • vaadinServletRegistration

      @Bean protected org.springframework.boot.web.servlet.ServletRegistrationBean vaadinServletRegistration()
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • vaadinServlet

      @Bean @ConditionalOnMissingBean public com.vaadin.server.VaadinServlet vaadinServlet()
    • createServletRegistrationBean

      protected org.springframework.boot.web.servlet.ServletRegistrationBean createServletRegistrationBean()
    • addInitParameters

      protected void addInitParameters(org.springframework.boot.web.servlet.ServletRegistrationBean servletRegistrationBean)