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

  • 相关阅读:
    实例之内存体系结构(1)--- 共享池(Share pool)
    体系结构 --- 实例和数据库
    分页查询与TOP-N特性
    MERGE 和 WITH语法
    外部表
    SQL语句(9)--- 同义词
    SQL语句(8)--- 索引
    SQL语句(7)--- 视图
    SQL语句(6)--- 约束
    死锁的产生与解决
  • 原文地址:https://www.cnblogs.com/Robin008/p/10287606.html
Copyright © 2011-2022 走看看