如何定制和修改Servlet容器的相关配置
- 修改定制和修改Servlet容器的相关配置
server.port=8081
server.context-path=/crudserver.tomcat.uri-encoding=UTF-8//通用的Servlet容器设置
server.xxx
//Tomcat的设置
server.tomcat.xxx
编写一个EmbeddedServletContainerCustomizer,2.0以后改为WebServerFactoryCustomizer
:嵌入式的Servlet容器的定制器;来修改Servlet容器的配置
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {@Beanpublic WebServerFactoryCustomizer webServerFactoryCustomizer() {return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {@Overridepublic void customize(ConfigurableWebServerFactory factory) {factory.setPort(8088);}};}
......
注册Servlet三大组件
由于SpringBoot默认是以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,没有web.xml文件
Servlet
向容器中添加ServletRegistrationBean
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {@Beanpublic ServletRegistrationBean myServlet() {ServletRegistrationBean register = new ServletRegistrationBean(new MyServlet(), "/myServlet");register.setLoadOnStartup(1);return register;}......
Filter
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {@Beanpublic FilterRegistrationBean myFilter() {FilterRegistrationBean register = new FilterRegistrationBean(new MyFilter());register.setUrlPatterns(Arrays.asList("/myServlet","/"));return register;}......
Listener
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {@Beanpublic ServletListenerRegistrationBean myServletContextListener(){return new ServletListenerRegistrationBean(new MyServletContextListener());}......