下面列出了怎么用org.springframework.boot.web.servlet.server.ServletWebServerFactory的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* 配置内置的Servlet容器工厂为Tomcat
* @return
*/
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
//添加配置信息,主要是Http的配置信息
tomcat.addAdditionalTomcatConnectors(redirectConnector());
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(redirectConnector());
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addInitializers(new ServletContextInitializer(){
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
XmlWebApplicationContext context = new XmlWebApplicationContext();
context.setConfigLocations(new String[]{"classpath:applicationContext-springmvc.xml"});
DispatcherServlet dispatcherServlet = new DispatcherServlet(context);
ServletRegistration.Dynamic dispatcher = servletContext
.addServlet("dispatcher", dispatcherServlet);
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
});
tomcat.setContextPath("/manager");
tomcat.addTldSkipPatterns("xercesImpl.jar","xml-apis.jar","serializer.jar");
tomcat.setPort(port);
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer() throws Exception {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
int apiPort = Utils.getSystemPort(Constants.SYS_API_PORT);
factory.setPort(apiPort);
factory.getSession().setTimeout(Duration.ofMinutes(10));
factory.setContextPath("/testproxy");
baseDirectory = new File("./tmp");
factory.setBaseDirectory(baseDirectory);
List<TomcatConnectorCustomizer> cs = new ArrayList();
cs.add(tomcatConnectorCustomizers());
factory.setTomcatConnectorCustomizers(cs);
if (Utils.getEnvironmentOptionValue(Constants.SYS_LOGGING_DISABLED) != null) {
HistoryService.getInstance().disableHistory();
}
return factory;
}
/**
* 配置tomcat
*
* @return
*/
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addConnectorCustomizers(gracefulShutdown());
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(ServerProperties serverProperties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addConnectorCustomizers(new VIPTomcatConnectionCustomizer(serverProperties));
if (serverProperties.getServerScheme().equalsIgnoreCase(ConstantsTomcat.HTTP_HTTPS) ||
serverProperties.getServerScheme().equalsIgnoreCase(ConstantsTomcat.HTTPS_HTTP)) {
tomcat.addAdditionalTomcatConnectors(initiateHttpsConnector(serverProperties));
}
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(ServerProperties serverProperties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addConnectorCustomizers(new VIPTomcatConnectionCustomizer(serverProperties));
if (serverProperties.getServerScheme().equalsIgnoreCase(ConstantsTomcat.HTTP_HTTPS) ||
serverProperties.getServerScheme().equalsIgnoreCase(ConstantsTomcat.HTTPS_HTTP)) {
tomcat.addAdditionalTomcatConnectors(initiateHttpsConnector(serverProperties));
}
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(TomcatSslConnectorProperties properties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createSslConnector(properties));
tomcat.setSessionTimeout(Duration.ofMinutes(1));
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(TomcatSslConnectorProperties properties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createSslConnector(properties));
tomcat.setSessionTimeout(Duration.ofMinutes(1));
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(TomcatSslConnectorProperties properties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createSslConnector(properties));
tomcat.setSessionTimeout(Duration.ofMinutes(1));
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(TomcatSslConnectorProperties properties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createSslConnector(properties));
tomcat.setSessionTimeout(Duration.ofMinutes(1));
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(TomcatSslConnectorProperties properties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createSslConnector(properties));
tomcat.setSessionTimeout(Duration.ofMinutes(1));
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(TomcatSslConnectorProperties properties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createSslConnector(properties));
tomcat.setSessionTimeout(Duration.ofMinutes(1));
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(TomcatSslConnectorProperties properties) {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createSslConnector(properties));
tomcat.setSessionTimeout(Duration.ofMinutes(1));
return tomcat;
}
/**
* It is used to register the tomcat valve with the tomcat container.
*
* @return embeddedTomcat
*/
@Bean
public ServletWebServerFactory servletContainerWithSemaphoreRateLimiterValve() {
TomcatServletWebServerFactory embeddedTomcat = new TomcatServletWebServerFactory();
embeddedTomcat.addEngineValves(new CustomerShedLoadSemaphoreValve(shedLoad));
return embeddedTomcat;
}
/**
* It is used to register the tomcat valve with the tomcat container.
*
* @return embeddedTomcat
*/
@Bean
@ConditionalOnClass({ Servlet.class, Tomcat.class })
public ServletWebServerFactory servletContainerWithSemaphoreRateLimiterValve() {
TomcatServletWebServerFactory embeddedTomcat = new TomcatServletWebServerFactory();
embeddedTomcat.addEngineValves(new ProductShedLoadSemaphoreValve(shedLoad));
return embeddedTomcat;
}
@Bean
public ServletWebServerFactory servletContainer() {
System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true");
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.setProtocol(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer() {
System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true");
System.setProperty("org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH", "true");
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.setProtocol(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
return tomcat;
}
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(org.apache.catalina.Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer(
@Value("${server.port:0}") int serverPort) {
log.info("Starting container at port [" + serverPort + "]");
return new TomcatServletWebServerFactory(
serverPort == 0 ? SocketUtils.findAvailableTcpPort() : serverPort);
}
@Bean
@ConditionalOnMissingBean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(getAppHttpPort());
tomcat.addAdditionalTomcatConnectors(connector);
return tomcat;
}
@Bean
public ServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory();
fa.addConnectorCustomizers(connector -> connector.setProperty("relaxedQueryChars", "[]{}"));
return fa;
}
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addConnectorCustomizers(connector -> connector.setAllowTrace(true));
return tomcat;
}
@Bean
public ServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory();
fa.addConnectorCustomizers(connector -> connector.setProperty("relaxedQueryChars", "[]{}"));
return fa;
}
@Bean
public ServletWebServerFactory webServerFactory() {
return new TomcatServletWebServerFactory("/ws", 0);
}
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
@Bean
public ServletWebServerFactory webServerFactory() {
return new JettyServletWebServerFactory();
}
@Bean
public ServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory();
fa.addConnectorCustomizers(connector -> connector.setProperty("relaxedQueryChars", "[]{}"));
return fa;
}
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.setProtocol(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
return tomcat;
}
@Bean
public ServletWebServerFactory servletContainer() {
log.info("Starting servletContainer");
return new TomcatServletWebServerFactory() {
@Override
protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) {
try {
log.info("Catalina base is " + tomcat.getServer().getCatalinaBase().getAbsolutePath());
File lib = new File("lib").getAbsoluteFile();
if (lib.isDirectory()) {
File bkvmWar = searchWar(lib, "bkvm", ".war");
if (bkvmWar != null) {
File configFile = new File("bkvm.conf");
log.info("looking for BKVM configuration file at " + configFile.getAbsolutePath());
if (configFile.isFile()) {
Properties props = new Properties();
try (FileReader reader = new FileReader(configFile)) {
props.load(reader);
}
boolean bkvmEnabled = Boolean.parseBoolean(props.getProperty("bkvm.enabled", "false"));
log.info("Read bkvm.enabled = {}", bkvmEnabled);
if (bkvmEnabled) {
System.setProperty("bookkeeper.visual.manager.config.path", configFile.getAbsolutePath());
File file = new File(tomcat.getServer().getCatalinaBase(), "/webapps");
log.info("Tomcat Webapps directory is " + file.getAbsolutePath());
file.mkdirs();
File bkvmDirectory = new File(file, "bkvm");
log.info("Deploying BKVM to " + bkvmDirectory.getAbsolutePath());
unZip(bkvmWar, bkvmDirectory);
Context context = tomcat.addWebapp("/bkvm", bkvmDirectory.getAbsolutePath());
WebappLoader loader = new WebappLoader(Thread.currentThread().getContextClassLoader());
context.setLoader(loader);
}
}
}
}
return super.getTomcatWebServer(tomcat);
} catch (IOException | ServletException ex) {
throw new RuntimeException(ex);
}
}
};
}