springboot-web开发servlet容器的默认配置修改方式、切换其他servlet容器

servlet的默认配置修改方式有两种,第一直接在application.properties中修改,第二是注bean组件EmbeddedServletContainerCustomizer重写类里的方法即可,这个类可以修改不同servlet容器的公共配置,比如端口字符编码等等,我们先看一下类EmbeddedServletContainerCustomizer,如果同时设置配置文件和注册bean组件设置,注册bean组件修改配置的优先级要高

public interface EmbeddedServletContainerCustomizer {

	void customize(ConfigurableEmbeddedServletContainer container);

}
里面只有方法customize,这个方法是定制的意思,设定自己servlet的属性值,类ConfigurableEmbeddedServletContainer 可以设置很多共同属性,如下

public interface ConfigurableEmbeddedServletContainer extends ErrorPageRegistry {
	void setContextPath(String contextPath);
	void setDisplayName(String displayName);
	void setPort(int port);
	void setSessionTimeout(int sessionTimeout);
	void setSessionTimeout(int sessionTimeout, TimeUnit timeUnit);
	void setPersistSession(boolean persistSession);
	void setSessionStoreDir(File sessionStoreDir);
	void setAddress(InetAddress address);
	void setRegisterDefaultServlet(boolean registerDefaultServlet);
	void setErrorPages(Set errorPages);
	void setMimeMappings(MimeMappings mimeMappings);
	void setDocumentRoot(File documentRoot);
	void setInitializers(List initializers);
	void addInitializers(ServletContextInitializer... initializers);
	void setSsl(Ssl ssl);
	void setSslStoreProvider(SslStoreProvider sslStoreProvider);
	void setJspServlet(JspServlet jspServlet);
	void setCompression(Compression compression);
	void setServerHeader(String serverHeader);
	void setLocaleCharsetMappings(Map localeCharsetMappings);
}

注册Bean组件的代码示例如下,我改一下启动tomcat端口

@Configuration
public class MyServletConfig {
	@Bean
	public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
		return new EmbeddedServletContainerCustomizer() {
			@Override
			public void customize(ConfigurableEmbeddedServletContainer container) {
				container.setPort(8081);
			}
		};
	}
}

springboot启动时默认的servlet容器是tomcat,但是我们也可以换成其他容器,比如Jetty,我们创建Boot项目引入spring-boot-starter-web后,查看一下jar包依赖情况如下图

springboot-web开发servlet容器的默认配置修改方式、切换其他servlet容器_第1张图片

如果需要切换servlet容器,先排除tomcat容器,在pom引用中配置exclusion将Tomcat引用排除


	org.springframework.boot
	spring-boot-starter-web
	
		
			org.springframework.boot
			spring-boot-starter-tomcat
		
	
    

然后导入需要的jetty配置即可使用jetty启动项目


		org.springframework.boot
		spring-boot-starter-jetty
    

 

你可能感兴趣的:(SpringBoot)