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管理。

  • 相关阅读:
    WEB服务器3--IIS7.0安装和配置
    组件与组件之间的通信以及vue2.0中的变化、示例
    Vue2.0组件之间通信
    weex学习资源集合贴
    主题 : 好了,今天周六了,既然没人了,那么开讲多线程编程
    使用vue2.0 vue-router vuex 模拟ios7操作
    iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
    iOS开发之使用Runtime给Model类赋值
    AFNetworking到底做了什么?
    webview300毫秒点击问题
  • 原文地址:https://www.cnblogs.com/Robin008/p/10287606.html
Copyright © 2011-2022 走看看