配置文件application.properties参数详解

springboot提供了许多启动器starter,大部分的启动器都有配置属性,这些配置属性一般可以在这里找到:

xxxxxxxx-autoconfigure-xxxxx.jar/META-INF/spring-configuration-metadata.json

application.properties

# 这些属性是否生效取决于对应的组件是否声明为 Spring 应用程序上下文里的 Bean(基本是自动配置的),
# 为一个不生效的组件设置属性是没有用的。

################ 文件上传 ################
# 开启上传支持, 默认是true
spring.servlet.multipart.enabled=true
# 最大文件大小, 单位MB, 默认是1MB
spring.servlet.multipart.max-file-size=1MB
# 最大请求大小, 单位MB, 默认是10MB
spring.servlet.multipart.max-request-size=10MB
# 文件上传位置
spring.servlet.multipart.location=/upload
# 大于该值的文件会被写到磁盘上, 单位B, 默认是0B
spring.servlet.multipart.file-size-threshold=0B

################ 服务器配置 ################
# 服务器地址
server.address=127.0.0.1
# 端口号, 默认是8080
server.port=8080
# 应用上下文路径
server.servlet.context-path=/appContext
# servlet 上下文参数
# server.servlet.context-parameters.[param name] = [param value]
server.servlet.context-parameters.email = lin@m

################ mvc配置 ################
# 异步请求处理超时前的等待时间(单位为毫秒)。
# 如果没有设置该属性,则使用底层实现 的默认超时时间,
# 比如,Tomcat 上使用 Servlet 3 时超时时间为 10 秒
spring.mvc.async.request-timeout=
# 要使用的日期格式
spring.mvc.date-format=dd/MM/yyyy
# 开启 favicon.ico 的解析
spring.mvc.favicon.enabled=true
# 在重定向的场景下,是否要忽略“默认”模型对象的内容, 默认是true
spring.mvc.ignore-default-model-on-redirect=true
# 要使用的地域配置
spring.mvc.locale=zh_CN
# 消息代码格式
spring.mvc.message-codes-resolver-format=prefix_error_code
# Spring MVC 视图前缀
spring.mvc.view.prefix=
# Spring MVC 视图后缀
spring.mvc.view.suffix=

################ jsp-servlet配置 ################
# 针对 jsp 使用的 Servlet 类名, 默认是 org.apache.jasper.servlet.JspServlet
# 需要tomcat-embed-jasper依赖
server.servlet.jsp.class-name=org.apache.jasper.servlet.JspServlet
# JspServlet 是否要注册到内嵌的 Servlet 容器里, 默认是true
server.servlet.jsp.registered=true
# Jsp Servlet 初始化参数
# server.servlet.jsp.init-parameters.[param name] = [param value]
server.servlet.jsp.init-parameters.userName = myName

################ Session配置 ################
# 会话 Cookie 的域
server.servlet.session.cookie.domain=www.lin.com
# Cookie 注释
server.servlet.session.cookie.comment=购物信息
# Cookie 最大保存时间, 单位s
server.servlet.session.cookie.max-age=10s
# Cookie 名称
server.servlet.session.cookie.name=carts
# Cookie 的访问路径
server.servlet.session.cookie.path=/page/
# Cookie安全性设置, true表示cookie无法通过document.cookie读取到cookie信息,这样能有效的防止XSS攻击
server.servlet.session.cookie.http-only=true
# Cookie安全性设置, true表示cookie只能用https协议发送给服务器,用http协议是不发送的
server.servlet.session.cookie.secure=true
# Session过期时间, 默认是30分钟
server.servlet.session.timeout=30m
# Session是否持久化, 默认是false
server.servlet.session.persistent=false
# 本地的session数据存放地址
server.servlet.session.store-dir=
# Session的追踪模式
# SessionTrackingMode下有三种可选值:COOKIE, URL, SSL
server.servlet.session.tracking-modes = COOKIE, URL

################ Tomcat配置 ################
# 创建日志文件的目录, 默认是logs
server.tomcat.accesslog.directory=logs
# 是否开启访问日志, 默认是false
server.tomcat.accesslog.enabled=false
# 访问日志的格式, 默认是common
server.tomcat.accesslog.pattern=common
# 日志名前缀, 默认是access_log
server.tomcat.accesslog.prefix=access_log
# 日志后缀名, 默认是.log
server.tomcat.accesslog.suffix=.log
# 用来解码 URI 的字符编码, 默认是UTF-8
server.tomcat.uri-encoding=UTF-8
# 最小备用线程数,tomcat启动时的初始化的线程数。
server.tomcat.min-spare-threads=10
# tomcat可创建的最大的线程数,每一个线程处理一个请求,超过这个请求数后,
# 客户端请求只能排队,等有线程释放才能处理。
server.tomcat.max-threads=200
# 最长等待时间,如果没有数据进来,等待一段时间后断开连接,释放线程。
server.tomcat.connection-timeout=5000

################ Cache配置 ################
# 如果底层缓存管理器支持缓存名的话,可以在这里指定要创建的缓存名列表,用逗号分隔。
# 通常这会禁用运行时创建其他额外缓存的能力。
spring.cache.cache-names=
# 用来初始化 EhCache 的配置文件位置
spring.cache.ehcache.config=classpath:ehcache.xml
# 缓存类型,默认根据环境自动检测
spring.cache.type=ehcache

################ data配置 ################
# 开启 JPA 仓库, 默认是true
spring.data.jpa.repositories.enabled=true

###=== spring.data.mongodb ===###
# 身份认证数据库名
spring.data.mongodb.authentication-database=
# 数据库名
spring.data.mongodb.database=
# 要使用的 FieldNamingStrategy 的全限定名
spring.data.mongodb.field-naming-strategy=org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategy
# GridFS 数据库名称
spring.data.mongodb.grid-fs-database=
# MongoDB 服务器地址
spring.data.mongodb.host=
# 端口号
spring.data.mongodb.port=
# MongoDB 账号
spring.data.mongodb.username=
# MongoDB 密码
spring.data.mongodb.password=
spring.data.mongodb.repositories.type=auto
# Mongo 数据库 URI。设置了该属性后就主机和端口号会被忽略。
# (默认值: mongodb:// localhost/test)
spring.data.mongodb.uri=mongodb://localhost/test

###=== spring.data.rest ===###
# 用于发布仓库资源的基本路径
spring.data.rest.base-path=
# 分页数据的默认页大小
spring.data.rest.default-page-size=
# 最大分页大小
spring.data.rest.max-page-size=
# 用于标识一次返回多少记录的 URL 查询字符串参数名。默认值:size
spring.data.rest.limit-param-name=
# URL 查询字符串参数的名称,用来标识返回哪一页。默认值:page
spring.data.rest.page-param-name=
# 在创建实体后是否返回一个响应体
spring.data.rest.return-body-on-create=
# 在更新实体后是否返回一个响应体
spring.data.rest.return-body-on-update=
# URL 查询字符串参数的名称,用来表示结果排序的方向。
spring.data.rest.sort-param-name=

###=== spring.data.solr ===###
# Solr 的主机地址。如果设置了 zk-host 则忽略该属性。
spring.data.solr.host=http://127.0.0.1:8983/solr
# 开启 solr 仓库, 默认是true
spring.data.solr.repositories.enabled=true
# 主机地址, 格式为HOST:PORT
spring.data.solr.zk-host=

################ DataSource配置 ################
# 数据库的 JDBC URL
spring.datasource.url=
# 数据库的登录密码
spring.datasource.password=
# 数据库的登录用户名
spring.datasource.username=
# JDBC 驱动的全限定类名。默认根据 URL 自动检测
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 数据源名称
spring.datasource.name=
# DML的SQL文件位置
spring.datasource.data=classpath:all.sql
# 执行DML操作的用户名
spring.datasource.data-username=
# 执行DML操作的密码
spring.datasource.data-password=
# 数据源类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 初始化数据库时发生错误是否终止
spring.datasource.continue-on-error=true
# 是否随机生成数据源名称
spring.datasource.generate-unique-name=true
# Schema(数据定义语言,Data Definition Language,DDL)脚本资源的引用。
spring.datasource.schema=classpath:create.sql
# SQL 初始化脚本里的语句分割符。默认是;
spring.datasource.separator=;
# 执行DDL操作的用户名
spring.datasource.schema-username=
# 执行DDL操作的密码
spring.datasource.schema-password=
# SQL 脚本的编码
spring.datasource.sql-script-encoding=UTF-8
# Platform to use in the DDL or DML scripts
# (such as schema-${platform}.sql or data-${platform}.sql)
spring.datasource.platform=all
# JNDI location of the datasource. Class, url, username & password are ignored when set
spring.datasource.jndi-name=
# Whether to enable JMX support (if provided by the underlying pool)
# 默认是false
spring.datasource.jmx-enabled=false

###=== hikari datasource配置 ===###
# 指定必须保持连接的最小值
spring.datasource.hikari.minimum-idle=
# 数据库密码
spring.datasource.hikari.password=
# 数据库用户名
spring.datasource.hikari.username=
# 指定连接池名字
spring.datasource.hikari.pool-name=
# 更新操作是否自动提交
spring.datasource.hikari.auto-commit=true
# 指定数据源的全限定名
spring.datasource.hikari.data-source-class-name=
# 指定driver的类名,默认从jdbc url中自动探测
spring.datasource.hikari.driver-class-name=
# 指定JDBC URL
spring.datasource.hikari.jdbc-url=
# 连接池中的连接能保持闲置状态的最长时间,单位为毫秒
spring.datasource.hikari.idle-timeout=
# 指定连接的超时时间,毫秒单位
spring.datasource.hikari.connection-timeout=
# 指定连接池最大的连接数,包括使用中的和空闲的连接
spring.datasource.hikari.maximum-pool-size=
# 使用Hikari connection pool时,多少毫秒检测一次连接泄露
spring.datasource.hikari.leak-detection-threshold=
# 指定校验连接合法性执行的sql语句
spring.datasource.hikari.connection-test-query=
# 连接的默认事务隔离级别
spring.datasource.hikari.transaction-isolation=
# 在连接验证失败前等待的超时时间,单位为秒
spring.datasource.hikari.validation-timeout=
# 是否允许池暂停(pool suspension)。在开启池暂停后会有性能会受到一定影响,
# 除非你真的需要这个功能(例如在冗余的系统下),否则不要开启它。
spring.datasource.hikari.allow-pool-suspension=true
# 默认的 Catalog 名称
spring.datasource.hikari.catalog=
# 在所有新连接创建时都会执行的 SQL 语句,该语句会在连接加入连接池前执行
spring.datasource.hikari.connection-init-sql=
# 指定jndi的地址
spring.datasource.hikari.data-source-j-n-d-i=
# 使用Hikari connection pool时,指定要设置的属性
# spring.datasource.hikari.data-source-properties.[key]
spring.datasource.hikari.data-source-properties.keyp=aaa
# 使用Hikari connection pool时,在心跳检查时传递的属性
# spring.datasource.hikari.health-check-properties.[key]
spring.datasource.hikari.health-check-properties.loopv=123
spring.datasource.hikari.health-check-registry=
# 初始化失败的超时时间
spring.datasource.hikari.initialization-fail-timeout=
# 指定内部查询是否要被隔离
spring.datasource.hikari.isolate-internal-queries=true
# 指定连接数据库的超时时间
spring.datasource.hikari.login-timeout=
# 指定连接池中连接的最大生存时间,毫秒单位
spring.datasource.hikari.max-lifetime=
spring.datasource.hikari.metric-registry=
spring.datasource.hikari.metrics-tracker-factory=
# 当使用Hikari connection pool时,是否标记数据源只读
spring.datasource.hikari.read-only=
# 指定Hikari connection pool是否注册JMX MBeans
spring.datasource.hikari.register-mbeans=
spring.datasource.hikari.scheduled-executor=
spring.datasource.hikari.schema=

################ FreeMarker配置 ################
# HttpServletRequest 的属性是否允许覆盖(隐藏)控制器生成的同名模型属性
spring.freemarker.allow-request-override=
# HttpSession 的属性是否允许覆盖(隐藏)控制器生成的同名模型属性
spring.freemarker.allow-session-override=
# 开启模板缓存
spring.freemarker.cache=false
# 模板编码, 默认是UTF-8
spring.freemarker.charset=UTF-8
# 检查模板位置是否存在
spring.freemarker.check-template-location=true
# 开启 FreeMarker 的 MVC 视图解析
spring.freemarker.enabled=true

################ H2配置 ################
# 开启控制台
spring.h2.console.enabled=true
# 可以找到控制台的路径
spring.h2.console.path=/h2-console
spring.h2.console.settings.trace=true
spring.h2.console.settings.web-allow-others=true

################ Http配置 ################
# HTTP 消息转换时优先使用 JSON 映射器
spring.http.converters.preferred-json-mapper=jackson
# HTTP 请求和响应的字符集。如果没有显式地指定 Content-Type 头,则将该属性值作为 这个头的值
spring.http.encoding.charset=UTF-8
# 开启 HTTP 编码支持, 默认是true
spring.http.encoding.enabled=true
# 强制将 HTTP 请求和响应编码为所配置的字符集, 默认是true
spring.http.encoding.force=true

################ Jackson配置 ################
# 日期格式字符串或日期格式类的全限定类名
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 在序列化时控制属性是否也进行序列化
spring.jackson.default-property-inclusion=non_empty
# 是否开启Jackson的反序列化
# spring.jackson.deserialization.[key]=
spring.jackson.deserialization.accept-float-as-int=true
# 是否开启json的generators
# spring.jackson.generator.[key]=
spring.jackson.generator.auto-close-json-content=true
# 指定Joda date/time的格式,比如yyyy-MM-ddHH:mm:ss. 如果没有配置的话,dateformat会作为backup
spring.jackson.joda-date-time-format=
# 指定json使用的Local(语言)
spring.jackson.locale=zh_CN
# 是否开启Jackson通用的特性
# spring.jackson.mapper.[key]=
spring.jackson.mapper.accept-case-insensitive-enums=true
# 是否开启jackson的parser特性
# spring.jackson.parser.[key]=
spring.jackson.parser.allow-backslash-escaping-any-character=true
# 指定PropertyNamingStrategy(CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES)
# 或者指定PropertyNamingStrategy子类的全限定类名
spring.jackson.property-naming-strategy=LOWER_CAMEL_CASE
# 是否开启jackson的序列化
# spring.jackson.serialization.[key]=
spring.jackson.serialization.fail-on-empty-beans=true
# 指定日期格式化时区,比如America/Los_Angeles或者GMT+10
spring.jackson.time-zone=

################ Jpa配置 ################
# 要操作的目标数据库,默认自动检测
spring.jpa.database=mysql
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
# 启动时是否要初始化 Schema
spring.jpa.generate-ddl=true
# hibernate. hbm2ddl.auto 属性的一个快捷方式。
# 在使用嵌入式数据库时,默认为 create-drop , 其他情况下默认为 none 。
spring.jpa.hibernate.ddl-auto=update
# 命名策略的全限定类名
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
# 注册 OpenEntityManagerInViewInterceptor, 在请求的整个处理过程中,
# 将一个 JPA EntityManager 绑定到线程上。
spring.jpa.open-in-view=true
spring.jpa.mapping-resources=
# JPA 提供方要设置的额外原生属性
# spring.jpa.properties.[key]
# 打开 SQL 语句日志
spring.jpa.show-sql=true
spring.jpa.hibernate.use-new-id-generator-mappings=true
################ mail配置 ################

# 默认的 MimeMessage 编码
spring.mail.default-encoding=UTF-8
# SMTP 服务器主机地址
spring.mail.host=
# SMTP 服务器的登录密码
spring.mail.password=
# SMTP 服务器的登录用户名
spring.mail.username=
# SMTP 服务器的端口号
spring.mail.port=
# 附加的 JavaMail 会话属性
# spring.mail.properties.[key]
# SMTP 服务器用到的协议, 默认是smtp
spring.mail.protocol=smtp
# 在启动时测试邮件服务器是否可用
spring.mail.test-connection=true

这里对server.tomcat进行解释:

  • 前缀为server的配置项,对应的配置类为org.springframework.boot.autoconfigure.web.ServerProperties,ServerProperties类中有一个内部类Tomcat,对应前缀为server.tomcat的配置项。
  • 项目启动时,这些配置会被set到org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory类中(引入spring-boot-starter-web依赖,会自动引入spring-boot-starter-tomcat,就是说tomcat是系统默认的容器,所以会自动初始化),之后TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer()创建并启动Tomcat容器实例。
  • Tomcat内部使用的是java.util.concurrent.ThreadPoolExecutor线程池,容器启动时会在org.apache.tomcat.util.net.AbstractEndpoint.createExecutor()这里创建线程池,所以其中最大最小线程数、线程创建、销毁和分配的策略其实都是ThreadPoolExecutor的特性。
原文地址:https://www.cnblogs.com/myitnews/p/11878705.html