28 | 新特性:Spring Boot如何使用内嵌式的Tomcat和Jetty?
该思维导图由 AI 生成,仅供参考
Spring Boot 中 Web 容器相关的接口
- 深入了解
- 翻译
- 解释
- 总结
Spring Boot内嵌式Web容器的使用方式及定制化方法是本文的重点。文章首先介绍了Spring Boot对内嵌式Web容器的抽象接口和工厂类,以及内嵌式Web容器的创建和启动过程。接着详细讨论了在Spring Boot中注册Servlet的三种方式,包括使用Servlet注解、ServletRegistrationBean和动态注册。此外,文章还介绍了如何通过WebServerFactoryCustomizer接口来定制Web容器,包括通用的Web容器工厂和特定Web容器的工厂。最后,文章提出了课后思考问题,引发读者对ServletContextInitializer和Tomcat中的ServletContainerInitializer的区别和联系的思考。 总的来说,本文深入浅出地介绍了Spring Boot中内嵌式Web容器的使用和定制化方法,对于想要深入了解Spring Boot内嵌式Web容器的开发人员来说,是一篇很有价值的文章。
《深入拆解 Tomcat & Jetty 》,新⼈⾸单¥68
全部留言(26)
- 最新
- 精选
- 壳置顶现在使用SpringMVC是不是不太这么直接使用servlet了?SpringMVC底层使用了servlet了吗?2023-11-04归属地:陕西
- 飞翔老师 sprongboot 不注册servlet 给tomcat 直接用@controller 就能实现servlet功能是咋回事呀
作者回复: springboot默认给我们注册了DispatcherSetvlet。
2019-07-13312 - peter"这段代码实现的方法返回一个 ServletRegistrationBean,并将它当作Bean 注册到 Spring 中", 这句话中“注册到Spring中” 是不是错的? 怎么会注册到Spring中? 应该是注册到tomcat servlet容器中吧。
作者回复: ServletRegisterBean本身是个Bean,由Spring管理,Spring会把这种类型的Bean收集起来,根据Bean里定义向Tomcat注册Servlet。
2019-07-1811 - 新世界servletContextInitializer实现该接口被spring管理,而不是被servletcontainer管理,是这个意思吗?
作者回复: 对的
2019-07-169 - 刘冬和"飞翔"同问: 有@RestController,为什么还要自己去注册Servlet给Tomcat? 我感觉老师很善于将负责的问题、长的逻辑链讲的简洁清晰,还请老师帮忙详细说明一下。 谢谢!
作者回复: 可能有些场景需要注册你自己写的一个Servlet提供辅助功能,与主程序分开
2019-07-1327 - despacito老师,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>
2019-07-1335 - Royal您好,想请教下jetty的NetworkTrafficListener.Adapter机制,有什么博客可以推荐吗?谢谢
作者回复: Jetty的资料比较少,我一般是看官网和源码
2019-07-16 - 雪山飞狐通过 ServletContextInitializer 接口可以向 Web 容器注册 Servlet,实现 ServletContextInitializer 接口的Bean被speing管理,但是在什么时机触发其onStartup()方法的呢? 谜底就是通过 Tomcat 中的 ServletContainerInitializer 接口实现者,如TomcatStarter,创建tomcat时设置了该类,在tomcat启动时会触发ServletContainerInitializer实现者的onStartup()方法,在这个方法中触发ServletContextInitializer接口的onStartup()方法,如注册DispatcherServlet。2020-04-024
- 张凤霞在三门峡更多细节: DispatcherServletRegistrationBean实现了ServletContextInitializer接口,它的作用就是向Tomcat注册DispatcherServlet,那它是在什么时候、如何被使用的呢? 答案:老师提到了prepareContext方法,但没展示代码内容,它调用了另一个私有方法configureContext,这个方法就包括了往tomcat的Context添加ServletContainerInitializer对象: context.addServletContainerInitializer(starter, NO_CLASSES); 其中有上面提到的DispatcherServletRegistrationBean。2020-05-0112
- 蒙开强老师,你好,如果我不想使用内嵌的Tomcat,想用自己装的Tomcat,那需要怎么做呢2019-08-152