zoukankan      html  css  js  c++  java
  • ServletRegistrationBean的源码摘要

    感觉ServletRegistrationBean在Springboot中是一个可以看懂的类,好像作用就相当于@Controoller注解,

    package org.springframework.boot.web.servlet;
    
    /**
     * A {@link ServletContextInitializer} to register {@link Servlet}s in a Servlet 3.0+
     * container. Similar to the {@link ServletContext#addServlet(String, Servlet)
     * registration} features provided by {@link ServletContext} but with a Spring Bean
     * friendly design.
     * <p>
     * The {@link #setServlet(Servlet) servlet} must be specified before calling
     * {@link #onStartup}. URL mapping can be configured used {@link #setUrlMappings} or
     * omitted when mapping to '/*' (unless
     * {@link #ServletRegistrationBean(Servlet, boolean, String...) alwaysMapUrl} is set to
     * {@code false}). The servlet name will be deduced if not specified.
     *
     * @param <T> the type of the {@link Servlet} to register
     * @author Phillip Webb
     * @since 1.4.0
     * @see ServletContextInitializer
     * @see ServletContext#addServlet(String, Servlet)
     */
    public class ServletRegistrationBean<T extends Servlet>
            extends DynamicRegistrationBean<ServletRegistration.Dynamic> {
    
        private static final String[] DEFAULT_MAPPINGS = { "/*" };
    
        private T servlet;
    
        private Set<String> urlMappings = new LinkedHashSet<>();
    
        private boolean alwaysMapUrl = true;
    
        private int loadOnStartup = -1;
    
        private MultipartConfigElement multipartConfig;
    
        /**
         * Create a new {@link ServletRegistrationBean} instance.
         */
        public ServletRegistrationBean() {
        }
    
        /**
         * Create a new {@link ServletRegistrationBean} instance with the specified
         * {@link Servlet} and URL mappings.
         * @param servlet the servlet being mapped
         * @param urlMappings the URLs being mapped
         */
        public ServletRegistrationBean(T servlet, String... urlMappings) {
            this(servlet, true, urlMappings);
        }
    
        /**
         * Create a new {@link ServletRegistrationBean} instance with the specified
         * {@link Servlet} and URL mappings.
         * @param servlet the servlet being mapped
         * @param alwaysMapUrl if omitted URL mappings should be replaced with '/*'
         * @param urlMappings the URLs being mapped
         */
        public ServletRegistrationBean(T servlet, boolean alwaysMapUrl,
                String... urlMappings) {
            Assert.notNull(servlet, "Servlet must not be null");
            Assert.notNull(urlMappings, "UrlMappings must not be null");
            this.servlet = servlet;
            this.alwaysMapUrl = alwaysMapUrl;
            this.urlMappings.addAll(Arrays.asList(urlMappings));
        }

     很多这样的bean最后交给了Spring管理。

  • 相关阅读:
    2.12 使用@DataProvider
    2.11 webdriver中使用 FileUtils ()
    Xcode8 添加PCH文件
    The app icon set "AppIcon" has an unassigned child告警
    Launch Image
    iOS App图标和启动画面尺寸
    iPhone屏幕尺寸、分辨率及适配
    Xcode下载失败 使用已购项目页面再试一次
    could not find developer disk image
    NSDate与 NSString 、long long类型的相互转化
  • 原文地址:https://www.cnblogs.com/Robin008/p/10287606.html
Copyright © 2011-2022 走看看