• peter
    2019-07-18
    "这段代码实现的方法返回一个 ServletRegistrationBean,并将它当作Bean 注册到 Spring 中", 这句话中“注册到Spring中” 是不是错的? 怎么会注册到Spring中? 应该是注册到tomcat servlet容器中吧。

    作者回复: ServletRegisterBean本身是个Bean,由Spring管理,Spring会把这种类型的Bean收集起来,根据Bean里定义向Tomcat注册Servlet。

    
     4
  • 刘冬
    2019-07-13
    和"飞翔"同问: 有@RestController,为什么还要自己去注册Servlet给Tomcat?
    我感觉老师很善于将负责的问题、长的逻辑链讲的简洁清晰,还请老师帮忙详细说明一下。
    谢谢!

    作者回复: 可能有些场景需要注册你自己写的一个Servlet提供辅助功能,与主程序分开

     1
     4
  • 飞翔
    2019-07-13
    老师 sprongboot 不注册servlet 给tomcat 直接用@controller 就能实现servlet功能是咋回事呀

    作者回复: springboot默认给我们注册了DispatcherSetvlet。

     1
     4
  • 新世界
    2019-07-16
    servletContextInitializer实现该接口被spring管理,而不是被servletcontainer管理,是这个意思吗?

    作者回复: 对的

    
     1
  • 慎独
    2019-12-12
    老师讲的很棒
    
    
  • 肖臧
    2019-08-23
    Spring boot启动Tomcat的源码里面把protocal写死了,我想把SIP相关的支持挪进来,该从哪里入手呢。
    @Override
        public WebServer getWebServer(ServletContextInitializer... initializers) {
            Tomcat tomcat = new Tomcat();
            File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat");
            tomcat.setBaseDir(baseDir.getAbsolutePath());
            Connector connector = new Connector(this.protocol);
            tomcat.getService().addConnector(connector);
            customizeConnector(connector);
            tomcat.setConnector(connector);
            tomcat.getHost().setAutoDeploy(false);
            configureEngine(tomcat.getEngine());
            for (Connector additionalConnector : this.additionalTomcatConnectors) {
                tomcat.getService().addConnector(additionalConnector);
            }
            prepareContext(tomcat.getHost(), initializers);
            return getTomcatWebServer(tomcat);
        }
    展开
    
    
  • 蒙开强
    2019-08-15
    老师,你好,如果我不想使用内嵌的Tomcat,想用自己装的Tomcat,那需要怎么做呢
    
    
  • brianway
    2019-08-15
    springboot 1.0版本如何定制web容器呢?
    
    
  • Royal
    2019-07-16
    您好,想请教下jetty的NetworkTrafficListener.Adapter机制,有什么博客可以推荐吗?谢谢

    作者回复: Jetty的资料比较少,我一般是看官网和源码

    
    
  • 飞翔
    2019-07-16
    老师 在digester 类里边的createStartDigester,方法,把enginer,host,context都实例化了,那wrapper是在哪里实例化的呢
    
    
  • despacito
    2019-07-13
    老师,springboot 中 getWebServer方法的实现类不仅有tomcat,还有其他web容器,比如jetty,那为什么我们在运行启动类的时候默认都是用的tomcat容器,如果我运行启动类的时候想用jetty作为应用容器,应该怎么做?

    作者回复: 在pom文件中去掉对Tomcat的依赖,加入对jetty的依赖:

      <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jetty</artifactId>
            </dependency>

        </dependencies>

     1
    
  • 大漠落木
    2019-07-13
    @FunctionalInterface
    org.springframework.boot.web.servlet.ServletContextInitializer
    This interface is primarily designed to allow ServletContextInitializers to bemanaged by Spring and not the Servlet container.
    javax.servlet.ServletContainerInitializer
    ServletContainerInitializers (SCIs) are registered via an entry in the file META-INF/services/javax.servlet.ServletContainerInitializer that must beincluded in the JAR file that contains the SCI implementation.
    展开
    
    
  • nightmare
    2019-07-13
    感觉还是要跟着操作一下才能懂了
    
    
我们在线,来聊聊吧