SpringBoot中Tomcat配置(學習SpringBoot實戰)
阿新 • • 發佈:2018-11-15
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
1、Tomcat配置
Spring Boot預設內嵌的Tomcat為Servlet容器,所以本節只講對Tomcat配置,其實本節的配置對Tomcat、Jetty和Undertow都是通用的。
1.1 配置Tomcat
關於Tomcat的所有屬性都在org.springframework.boot.autoconfigure.web.ServerProperties配置類中做了定義,我們只需在application.properties配置屬性做配置即可。通用的Servlet容器配置都以"server"作為字首,而Tomcat特有配置都以"server.tomcat"作為字首。下面舉一些常用的例子。
- 1
配置servlet容器
server.port = #配置程式埠,預設為8080server.session-timeout=#使用者session過期,以秒為單位 server.context-path= #配置訪問路徑,預設為/
- 1
- 2
- 3
配置Tomcat
server.tomcat-uri-encoding = #配置Tomcat編碼,預設為UTF-8
server.tomcat.compression = #Tomcat是否開啟壓縮,預設為關閉off
1.2 程式碼配置Tomcat
如果你需要通過程式碼的方式配置servlet容器,則可以註冊一個實現EmbeddedServletContainerCustomizer介面的Bean,若想直接配置Tomcat、Jetty、Undertow,則可以直接定義TomcatEmbeddedServletContainerFactor、JettyEmbeddedServletContainerFactor、UndertowEmbeddedServletContainerFactor。
1.2.1 編寫案例,專案目錄如下
1.2.2 pom.xml的內容如下
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.wisely</groupId> <artifactId>ch7_4</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>ch7_4</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.0.M1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories></project>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
1.2.3 index.html的內容
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Insert title here</title></head><body>index page</body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
1.2.4 404.html
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Insert title here</title></head><body>page not found,this is 404 page!</body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
1.2.5 CustomServletContainer.java的內容
package com.wisely.ch7_4;import ch.qos.logback.core.util.TimeUtil;import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;import org.springframework.boot.context.embedded.ErrorPage;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import java.util.concurrent.TimeUnit;@Componentpublic class CustomServletContainer implements EmbeddedServletContainerCustomizer { @Override public void customize(ConfigurableEmbeddedServletContainer container) { container.setPort(8888); container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404.html")); container.setSessionTimeout(10, TimeUnit.MINUTES); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
1.2.6 Ch74Application.java的內容
package com.wisely.ch7_4;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controller@SpringBootApplicationpublic class Ch74Application { @RequestMapping("/") @ResponseBody private String hello() { return "hello!"; } @RequestMapping("/toIndex") public String toIndexPage() { return "index1"; } public static void main(String[] args) { SpringApplication.run(Ch74Application.class,args); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
1.2.7 執行
瀏覽器中輸入:http://localhost:8888/toIndex
瀏覽器中輸入:http://localhost:8888,最後的效果如下: