Spring Boot 使用 Properties 和 YAML 配置文件文件,系列文章:
《Spring使用@Value注解与@PropertySource注解加载配置文件》
《SpringBoot获取YAML配置文件中的属性值(一):使用@Value注解、@ConfigurationProperties注解》
《SpringBoot获取YAML配置文件中的属性值(二):使用Environment环境组件读取值》
《SpringBoot使用Properties和YAML配置多环境》
《SpringBoot服务中Servlet容器的常用配置信息:server.port、server.servlet、server.tomcat等》
SpringBoot默认使用Tomcat作为内嵌式的Servlet容器,查看 spring-boot-starter-web 依赖如下:

关于Servlet容器的属性都在org.springframework.boot.autoconfigure.web.ServerProperties配置类中做了定义,我们只需要在application.properties配置文件中配置属性即可。通用的Servlet容器配置都以“server”作为前缀,而Tomcat特有配置都以“server.tomcat”作为前缀。下面举一些列子。
application.properties配置文件:
# Spring 配置,设置项目名称
spring.application.name=EnvironmentProject
#配置程序端口,默认为 8080
server.port=8081
#设定应用的展示名称
server.servlet.context-path=/
#错误页面地址
server.error.path=/error
#用户会话 session 过期时间,默认30分钟
server.servlet.session.timeout=30m
#服务器绑定的IP地址
server.address=192.168.1.1
#配置Tomcat编码,默认为 UTF-8
server.tomcat.uri-encoding=UTF-8
#设定Tomcat的最大工作线程数
server.tomcat.max-threads=200
application.yml配置文件:
# Spring 配置
spring:
application:
name: EnvironmentProject
# Servlet 容器配置
server:
port: 8081
servlet:
session:
timeout: 30m
tomcat:
uri-encoding: UTF-8
max-threads: 200
详细的server属性配置如下:
# server 属性
server.address 指定server绑定的地址
server.compression.enabled 是否开启压缩,默认为false
server.compression.excluded-user-agents 指定不压缩的user-agent 多个以逗号分隔,默认值为text/html,text/xml.text/plain,text/css
server.compression.mime-types 指定要压缩的mime-type,多个以逗号分隔.
server.compression.min-response-size 执行压缩的阈值,默认为2048
server.context-parameters.[param.name]设置servlet context参数
server.context-path 设定应用的展示名称,默认为application
server.jsp-servlet.class-name 设定编译jsp用的servlet,默认:org.apache.jasper.servlet.JspServlet
server.jsp-servlet.registered 设定jsp servlet是否注册到内嵌的servlet容器,默认为true
server.port 设定http监听端口
server-servlet-path 设定dispatcher-servlet 的监听路径,默认为/
# cookie,session 属性
server.session.cookie.comment 指定session cookie的comment
server.session.cookie.domain 指定session cookie的domain
server.session.cookie.http-only 是否开启httpOnly
server.session.cookie.max-age 设定session cookie的最大age
server.session.cookie.name 设定session cookie的名称
server.session.cookie.path 设定session cookie的路径
server.session.cookie.secure 设定session cookie的secure flag
server.session.persistent 重启时是否持久化session 默认为false
server.session.timeout.session 超时时间
server.session.tracking-modes 设定session的追踪模式(cookie,url,ssl)
# ssl 属性
server.ssl.ciphers 是否支持ssl ciphers
server.ssl.client-auth 设定client authentication是wanted 还是needed
server.ssl.enabled 是否开启ssl,默认为true
server.ssl.key-alias 设定key store中key的别名
server.ssl.key-password 访问key store中key的名称
server;ssl.key-store设定持有ssl certificate中的key store的路径.通常是.jks文件
server.ssl.key-store-password 设定访问key store的密码.
server.ssl.key-store-provider 设定key store的提供者.
server.ssl.key-store-type 设定key store的类型.
server.ssl.protocol 使用的SSL协议,默认: TLS
server.ssl.trust-store 持有SSL certificates的Trust store
server.ssl.trust-store-password 访问trust store的密码.
server.ssl.trust-store-provider 设定trust store的提供者.
server.ssl.trust-store-type 指定trust store的类型.
# tomcat 属性
server.tomcat.access-log-enabled 是否开启access log ,默认: false
server.tomcat.access-log-pattern 设定access logs的格式,默认: common
server.tomcat.accesslog.directory 设定log的目录,默认: logs
server.tomcat.accesslog.enabled 是否开启access log,默认: false
server.tomcat.accesslog.pattern 设定access logs的格式,默认: common
server.tomcat.accesslog.prefix 设定log 文件的前缀,默认: access_log
server.tomcat.accesslog.suffix 设定log 文件的后缀,默认: .log
server.tomcat.background-processor-delay 后台线程方法的delay大小: 30
server.tomcat.basedir 设定tomcat的base 目录,如果没有指定则使用临时目录.
server.tomcat.internal-proxies 设定信任的正则表达式,默认:“10.\d{1,3}.\d{1,3}.\d{1,3}| 192.168.\d{1,3}.\d{1,3}| 169.254.\d{1,3}.\d{1,3}| 127.\d{1,3}.\d{1,3}.\d{1,3}| 172.1[6-9]{1}.\d{1,3}.\d{1,3}| 172.2[0-9]{1}.\d{1,3}.\d{1,3}|172.3[0-1]{1}.\d{1,3}.\d{1,3}”
server.tomcat.max-http-header-size 设定http header的最小值,默认: 0
server.tomcat.max-threads 设定tomcat的最大工作线程数,默认为: 0
server.tomcat.port-header 设定http header使用的,用来覆盖原来port的value.
server.tomcat.protocol-header 设定Header包含的协议,通常是 X-Forwarded-Proto,如果remoteIpHeader有值,则将设置为RemoteIpValve.
server.tomcat.protocol-header-https-value 设定使用SSL的header的值,默认https.
server.tomcat.remote-ip-header 设定remote IP的header,如果remoteIpHeader有值,则设置为RemoteIpValve
server.tomcat.uri-encoding 设定URI的解码字符集.
# undertow 属性
server.undertow.access-log-dir 设定undertow access log 的目录,默认: logs
server.undertow.access-log-enabled 是否开启access log,默认: false
server.undertow.access-log-pattern 设定access logs的格式,默认: common
server.undertow.accesslog.dir 设定access log 的目录.
server.undertow.buffer-size 设定buffer的大小.
server.undertow.buffers-per-region 设定每个region的buffer数
server.undertow.direct-buffers 设定堆外内存
server.undertow.io-threads 设定I/O线程数.
server.undertow.worker-threads 设定工作线程数

本文详细介绍了SpringBoot框架中Tomcat服务器的配置方法,包括如何修改端口、会话超时时间、编码及线程数等。同时,文章还列举了多种server属性配置,如压缩设置、SSL配置、日志记录等,帮助开发者更好地理解和调整内嵌Tomcat容器。
1612

被折叠的 条评论
为什么被折叠?



