当前位置:   article > 正文

Spring Boot 3.0.0-M1 Reference Documentation(Spring Boot中文参考文档)-附录A-C_@value("${whs.sdk.scheduler.before-delay:1800}")

@value("${whs.sdk.scheduler.before-delay:1800}")

附录

附录A:常用的应用程序属性

多种属性可以指定到application.properties文件,application.yml文件内,或者作为命令行开关。这个附录提供常用的Spring Boot属性列表以及对使用他们底层类的引用。

Spring Boot提供多种高级格式化的转化机制,请务必查看属性转换部分

属性贡献可以来自于类路径中的额外的jar文件,所以你应该不认为这是一个详细的列表。而且,你可以定义你自己的属性。

.A.1. 核心属性
名称描述默认值
debug启用调试日志false
info.*添加到信息端点的任意属性
logging.charset.console用于控制台输出的字符集
logging.charset.file用于文件输出的字符集
logging.config日志配置文件的位置。例如用于Logback的classpath:logback.xml
logging.exception-conversion-word当日志异常时使用的转换字符%wEx
logging.file.name日志文件名称(例如,myapp.log)。名称可以是一个准确的位置或者相对于当面目录
logging.file.path日志文件的位置。例如,/var/log
logging.group.*日志组用于同时快速修改多个日志记录器。例如logging.group.db=org.hibernate,org.springframework.jdbc
logging.level.*日志级别严格映射。例如,logging.level.org.springframework=DEBUG
logging.log4j2.config.override覆盖配置文件,用来创建一个合成配置
logging.logback.rollingpolicy.clean-history-on-start在启动时是否清除归档日志文件false
logging.logback.rollingpolicy.file-name-pattern用于滚动存储日志文件名称的格式${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
logging.logback.rollingpolicy.max-file-size最大的日志文件大小10MB
logging.logback.rollingpolicy.max-history保持归档日志文件数量的最大值7
logging.logback.rollingpolicy.total-size-cap要保持日志备份总大小0B
logging.pattern.console输出到控制台的Appender格式。使用默认的Logback设置支持%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd'T'HH:mm:ss.SSSXXX}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
logging.pattern.dateformat日志日期格式的Appender格式。使用默认的Logback设置支持yyyy-MM-dd'T'HH:mm:ss.SSSXXX
logging.pattern.file输出到一个文件的Appender格式。使用默认的Logback设置支持%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd'T'HH:mm:ss.SSSXXX}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
logging.pattern.level日志级别的Appender格式。使用默认的Logback设置支持%5p
logging.register-shutdown-hook当日志系统初始化时,注册停机钩子用于日志系统。当作为war文件部署时,禁用自动化true
spring.aop.auto添加@EnableAspectJAutoProxytrue
spring.aop.proxy-target-class是否创建基于子类(CGLIB)的代理(true),还是创建基于标准的Java接口代理(false)true
spring.application.admin.enabled是否为应用程序启动admin特性false
spring.application.admin.jmx-name应用程序管理MBean的JMX名称org.springframework.boot:type=Admin,name=SpringApplication
spring.application.name应用程序名称
spring.autoconfigure.exclude排除的自动配置类
spring.banner.charsetBanner文件编码UTF-8
spring.banner.locationBanner文本资源位置classpath:banner.txt
spring.beaninfo.ignore是否过滤BeanInfo类的搜索true
spring.codec.log-request-details是否在DEBUG级别记录表单数据和在TRACE记录头数据false
spring.codec.max-in-memory-size当需要聚合输入流时,限制可以缓冲字节数。这个只应用在自动配置的WebFlux服务器和WebClient实例。默认情况下,这个不设置,将应用单个编解码器默认值。大多数编解码器被限制在默认的256K
spring.config.activate.on-cloud-platform包含文档中所需的云平台
spring.config.activate.on-profile包含文档中应该匹配的配置文件表达式
spring.config.additional-location除了默认使用的配置文件位置
spring.config.import引入额外的配置文件
spring.config.location代替默认的配置文件位置
spring.config.name配置文件名称application
spring.info.build.encoding文件编码UTF-8
spring.info.build.location生成build-info.properties文件的位置classpath:META-INF/build-info.properties
spring.info.git.encoding文件编码UTF-8
spring.info.git.location生成git.properties文件的位置classpath:git.properties
spring.jmx.default-domainJMX域名称
spring.jmx.enabled暴露管理bean到JMX域false
spring.jmx.serverMBeanServer bean名称mbeanServer
spring.jmx.unique-names是否保证唯一运行时对象名称false
spring.lifecycle.timeout-per-shutdown-phase任何阶段停机的超时时间(一组具有相同阶段值的SmartLifecycle bean)30s
spring.main.allow-bean-definition-overriding是否可以bean定义覆盖,通过注册从一个与现有的定义相同的名字的定义,是否允许false
spring.main.allow-circular-references是否允许bean之间循环依赖,并尝试解决他们false
spring.main.banner-mode当应用程序运行时用来展示banner的模式console
spring.main.cloud-platform覆盖云平台自动检测
spring.main.lazy-initialization是否延迟提供初始化false
spring.main.log-startup-info是否记录应用程序启动时信息true
spring.main.register-shutdown-hook应用程序是否应该注册一个关闭钩子true
spring.main.sources要包含到应用程序上下文的资源(类名称,包名称或者XML资源位置)
spring.main.web-application-type标记来显式地请求特定类型的web应用程序,如果没有设置,基于类路径自动检测
spring.mandatory-file-encoding应用程序必须使用期望的字符编码
spring.messages.always-use-message-format是否一直应用MessageFormat规则,甚至解析无参信息false
spring.messages.basename逗号分隔的基本名称列表(本质上一个完全限定类路径位置),每一个名称遵循ResourceBundle规范,并对基于斜杠的位置提供宽松支持。如果它不包括一个包限定(例如,“org.package”),它将从跟类路径解析。messages
spring.messages.cache-duration加载的资源包文件缓存持续时间。当没有设置时,包永远缓存。如果持续时间后缀没有指定,将使用秒
spring.messages.encoding消息包编码UTF-8
spring.messages.fallback-to-system-locale如果没有找到用于特定的Locale的文件,是否回退到系统Locale设置。如果这个关闭,只回退到默认文件(如,对于基本名称"messages"的messages.propertiestrue
spring.messages.use-code-as-default-message是否使用消息编码作为默认的消息,而不是抛出“NoSuchMessageException”。只在开发期间推荐false
spring.pid.fail-on-write-error如果ApplicationPidFileWriter被使用但是它不能写PID文件则失败
spring.pid.file要写PID文件的位置(如果使用ApplicationPidFileWriter)
spring.profiles.active以逗号分隔的活跃配置文件列表。可以通过命令行开关覆盖
spring.profiles.default如果没有配置文件活跃,启用的配置文件的名称default
spring.profiles.group.*配置文件组,为一组相关的配置文件定义一个逻辑名称
spring.profiles.include无条件激活特定的逗号分隔的配置文件列表(如果使用YAML,则是配置文件列表)
spring.quartz.auto-startup初始化后是否自动启动计划true
spring.quartz.jdbc.comment-prefix在SQL初始化脚本中用于单行备注的前缀[#, --]
spring.quartz.jdbc.initialize-schema数据库模式初始化模式embedded
spring.quartz.jdbc.platform如果使用@@plathform@@占位符,在初始化脚本中要使用的平台。默认自动检测
spring.quartz.jdbc.schemaSQL文件的路径,用于初始化数据库模式classpath:org/quartz/impl/jdbcjobstore/tables_@@platform@@.sql
spring.quartz.job-store-typeQuartz作业存储类型memory
spring.quartz.overwrite-existing-jobs配置的job是否应该覆盖已存在的jobfalse
spring.quartz.properties.*额外的Quartz Scheduler属性
spring.quartz.scheduler-name计划名称quartzScheduler
spring.quartz.startup-delay当初始化完毕,延迟启动调度器。如果在全部应用程序没有启动之前,不应该有job运行,那么设置这个属性有意义的0s
spring.quartz.wait-for-jobs-to-complete-on-shutdown在停机时是否等待运行的job完成false
spring.reactor.debug-agent.enabled当reator-toos存在时,是否应该启动Reactor Debug Agenttrue
spring.task.execution.pool.allow-core-thread-timeout是否允许核心线程超时。这允许吃的动态成长和收缩true
spring.task.execution.pool.core-size线程的核心数量8
spring.task.execution.pool.keep-alive被终止之前每个线程保留的时间限制60s
spring.task.execution.pool.max-size允许的最大线程数。如果任务正在填充队列,则池可扩展到该大小以适应负载。如果队列是无界的,则忽略
spring.task.execution.pool.queue-capacity队列容积。一个无界的容积不会增加池,因为忽略“max-size”属性
spring.task.execution.shutdown.await-termination在关机时,执行器是否等待安排的任务完成false
spring.task.execution.shutdown.await-termination-period执行器应该等待留存的任务完成的最大时间
spring.task.execution.thread-name-prefix用于最近创建的线程的名称的前缀task-
spring.task.scheduling.pool.size允许线程数的最大值1
spring.task.scheduling.shutdown.await-termination在关闭时,执行器是否等待调度器完成false
spring.task.scheduling.shutdown.await-termination-period调度器应该等待留存任务完成的最大时间
spring.task.scheduling.thread-name-prefix用于最近创建线程的名字的前缀scheduling-
trace启用追踪日志false
.A.2. 缓存属性
名称描述默认值
spring.cache.cache-names如果底层缓存管理器支持,则创建以逗号分隔的缓存名称列表。通常,这个禁用动态创建额外缓存的能力
spring.cache.caffeine.spec用于创建缓存的规格。请查看CaffeineSpec了解关于spec格式的更多详情
spring.cache.couchbase.expiration条目过期。默认情况下条目永远不过期。注意这个值最终被转换为秒
spring.cache.jcache.config用来初始化缓存管理器的配置文件的位置。配置文件是不依赖底层的缓存实现
spring.cache.jcache.provider用来检索符合JRS-107的缓存管理器的CachingProvider实现的完全限定名称。如果只有在类路径中有超过一个JSR-107实现可用时需要
spring.cache.redis.cache-null-values允许缓存控制true
spring.cache.redis.enable-statistics是否启用缓存统计false
spring.cache.redis.key-prefixkey的前缀
spring.cache.redis.time-to-live条目过期。默认情况下条目从不过期
spring.cache.redis.use-key-prefix当写入redis时,是否使用key前缀true
spring.cache.type缓存类型。默认情况下,根据环境自动检测
.A.3. 邮件属性
名称描述默认值
spring.mail.default-encoding默认的MimeMessage编码UTF-8
spring.mail.hostSMTP服务器主机。例如’smtp.example.com’
spring.mail.jndi-name会话JNDI名称。当设置时,优先级高于其他会话设置
spring.mail.password登陆SMTP服务器密码
spring.mail.portSMTP服务器端口
spring.mail.properties.*额外的JavaMail会话属性
spring.mail.protocolSMTP服务器使用的协议smtp
spring.mail.test-connection是否在启动时测试mail服务器可用false
spring.mail.username登录SMTP服务器用户
spring.sendgrid.api-keySendGrid API 键
spring.sendgrid.proxy.hostSendGrid 代理主机
spring.sendgrid.proxy.portSendGrid 代理端口
.A.4. JSON属性
名称描述默认值
spring.gson.date-format当序列化时间对象时使用的格式
spring.gson.disable-html-escaping是否禁用HTML字符串转移,例如’<‘,’>'等等
spring.gson.disable-inner-class-serialization是否排除序列化期间的内部类
spring.gson.enable-complex-map-key-serialization是否启用复杂的map key的序列(及非原生的)
spring.gson.exclude-fields-without-expose-annotation是否考虑序列化和反序列化时,排除所有不带"Expose"注解的字段
spring.gson.field-naming-policy在序列化和反序列化期间,应该应用到对象字段的命名政策
spring.gson.generate-non-executable-json是否通过在输出前加上一些特殊的文本生成非可执行的JSON
spring.gson.lenient是否对没有遵守RFC4627解析JSON妥协
spring.gson.long-serialization-policy对于Long和long类型的序列化政策
spring.gson.pretty-printing是否输出适合页面的序列化JSON,以便美化打印
spring.gson.serialize-nulls是否序列化空字段
spring.jackson.constructor-detector用来自动检测构造器的策略,特别是单参数构造器的行为default
spring.jackson.date-format日期格式字符串或者完全限定时间格式类名。例如,‘yyyy-MM-dd HH:mm:ss’default
spring.jackson.default-leniencyleniency全局默认设置(如果有的话)
spring.jackson.default-property-inclusion在序列化期间控制包含的属性。使用Jackson的JsonInclude.Include枚举值的一个配置
spring.jackson.deserialization.*Jackson 打开/关闭影响Java对象被反序列化的方式的特性
spring.jackson.generator.*Jackson 打开/关闭生成器的特性
spring.jackson.locale用于格式化的地点
spring.jackson.mapper.*Jackson一般用途打开/关闭特性
spring.jackson.parser.*Jackson打开/关闭解析特性
spring.jackson.property-naming-strategy在Jackson的PropertyNamingStrategies上的常量之一。也可以是PropertyNamingStrategy实现完全限定类名称
spring.jackson.serialization.*Jackjson 打开/关闭影响Java对象序列化方式的特性
spring.jackson.time-zone当格式化时间所使用的Time zone。例如,“America/Los_Angeles”或者“GMT+10”
spring.jackson.visibility.*Jackson可见性阈值,可以用于限制自动检测哪些方法(和字段)
.A.5. 数据属性
名称描述默认值
spring.couchbase.connection-string用于定位Couch集群的链接字符串
spring.couchbase.env.io.idle-http-connection-timeout一个HTTP连接可能保持空闲的时间长度,在将它关闭并移除池之前4500ms
spring.couchbase.env.io.max-endpoints每个节点的socket最大值12
spring.couchbase.env.io.min-endpoints每个节点的socket最小值1
spring.couchbase.env.ssl.enabled是否启用SSL支持。如果一个“keyStore”被提供则自动启用,除非另有指定
spring.couchbase.env.ssl.key-store存放证书的JVM key store的路径
spring.couchbase.env.ssl.key-store-password用于访问key store的密码
spring.couchbase.env.timeouts.analytics解析服务的超时时间75s
spring.couchbase.env.timeouts.connectBucket连接超时时间10s
spring.couchbase.env.timeouts.disconnectBucket断开连接超时时间10s
spring.couchbase.env.timeouts.disconnectBucket断开连接超时时间10s
spring.couchbase.env.timeouts.key-value在特定的key-value操作的超时时间2500ms
spring.couchbase.env.timeouts.key-value-durable在特定的持久性级别的key-value操作的超时时间10s
spring.couchbase.env.timeouts.management管理操作的超时时间75s
spring.couchbase.env.timeouts.queryN1QL查询操作超时75s
spring.couchbase.env.timeouts.search查询服务超时75s
spring.couchbase.env.timeouts.view常规和物理视图操作超时75s
spring.couchbase.passwordCluster 密码
spring.couchbase.usernameCluster 用户名
spring.dao.exceptiontranslation.enabled是否启用PersistenceExceptionTranslationPostProcessortrue
spring.data.cassandra.compressionCassandra二进制协议支持的压缩none
spring.data.cassandra.config要使用的配置文件的位置
spring.data.cassandra.connection.connect-timeout当建立驱动连接时使用的超时时间5s
spring.data.cassandra.connection.init-query-timeout用于仅仅在连接打开之后,作为初始化进程部分运行的内部查询使用的超时时间。5s
spring.data.cassandra.contact-points以‘host:port’形式的集群节点地址,或者使用已配置的端口的一个简单的‘host’[127.0.0.1:9042]
spring.data.cassandra.controlconnection.timeout用于控制查询的超时时长5s
spring.data.cassandra.keyspace-name要使用的秘钥空间的名称
spring.data.cassandra.local-datacenter认为是‘local’的数据中心。联络点应该来自数据中心
spring.data.cassandra.password服务器的登陆密码
spring.data.cassandra.pool.heartbeat-interval在一个空闲的链接发送一条信息之后确保它是存活的心跳间隔30s
spring.data.cassandra.pool.idle-timeout移除一个空闲的链接之前空闲超时时间5s
spring.data.cassandra.port如果一个连接点没有特定的一个,要使用的端口9042
spring.data.cassandra.repositories.type启用的Cassandra仓库的类型auto
spring.data.cassandra.request.consistency查询一致性级别
spring.data.cassandra.request.page-size在一个单独的网络往返中同时检索的行数5000
spring.data.cassandra.request.serial-consistency查询串行一致性级别
spring.data.cassandra.request.throttler.drain-interval节流器尝试从队列中取出请求的频率。将此值设置的足够高以便每次尝试处理队列中的多个条目,但不会过多的延迟请求
spring.data.cassandra.request.throttler.max-concurrent-requests允许串行执行的请求个数
spring.data.cassandra.request.throttler.max-queue-size超过限流阈值时可以进入队列请求的最大个数
spring.data.cassandra.request.throttler.max-requests-per-second允许请求比例的最大值
spring.data.cassandra.request.throttler.type请求限流类型none
spring.data.cassandra.request.timeout驱动等待请求完成的时长2s
spring.data.cassandra.schema-action启动时要采取的架构操作none
spring.data.cassandra.session-nameCassandra会话的名称
spring.data.cassandra.ssl启用SSL支持false
spring.data.cassandra.username服务器的登陆用户名
spring.data.couchbase.auto-index自动创建视图和索引。使用通过"@ViewIndexed",“@N1qlPrimaryIndexed”,"@N1qlSecondaryIndexed"提供的元数据false
spring.data.couchbase.bucket-name要连接的bucket的名称
spring.data.couchbase.field-naming-strategy要使用的FieldNamingStrategy的全量限定名称
spring.data.couchbase.repositories.type启用的Couchbase仓库的类型auto
spring.data.couchbase.scope-name用于所有集合访问的作用域名称
spring.data.couchbase.type-key当使用"MappingCouchbaseConverter"存储负载类型的类型信息的字段名称_class
spring.data.elasticsearch.client.reactive.endpoints[localhost:9200]
spring.data.elasticsearch.repositories.enabled是否启用Elasticsearch仓库true
spring.data.jdbc.repositories.enabled是否启用JDBC仓库true
spring.data.jpa.repositories.bootstrap-mode用于JAP仓库的引导模式default
spring.data.jpa.repositories.enabled是否启用JPA仓库true
spring.data.ldap.repositories.enabled是否启用LDAP仓库true
spring.data.mongodb.authentication-database身份认证数据库名称
spring.data.mongodb.auto-index-creation是否启用自动索引创建
spring.data.mongodb.database数据库名称
spring.data.mongodb.field-naming-strategy要使用的FieldNamingStrategy的全量限定名称
spring.data.mongodb.gridfs.bucketGridFS bucket 名称.
spring.data.mongodb.gridfs.databaseGridFS 数据库名称.
spring.data.mongodb.hostMong服务器主机,不能用URI设置.
spring.data.mongodb.passwordMong服务器的登陆密码.不能用URI设置
spring.data.mongodb.portMong服务器端口.不能用URI设置
spring.data.mongodb.replica-set-name集群所需要的副本集名称。不能用URI设置
spring.data.mongodb.repositories.type要启用的Mongo仓库类型auto
spring.data.mongodb.uriMongo数据库URI.覆盖主机,端口,用户名,密码和数据库mongodb://localhost/test
spring.data.mongodb.usernameMongo服务器登陆用户。不能用URI设置
spring.data.mongodb.uuid-representation当UUID转换为BSON二进制值时使用的表现形式java-legacy
spring.data.neo4j.database要使用的数据名称。默认情况下,服务器决定要使用的默认数据库
spring.data.neo4j.repositories.type要启用的Neo4j仓库的类型auto
spring.data.r2dbc.repositories.enabled是否启用R2DBC仓库true
spring.data.redis.repositories.enabled是否启用Redis仓库true
spring.data.rest.base-pathSpring Data REST用于公开仓库资源的基本路径
spring.data.rest.default-media-type当没有指定时,作为一个默认值使用的内容类型
spring.data.rest.default-page-size默认的页大小
spring.data.rest.detection-strategy用于确定公开哪些仓库的策略defalut
spring.data.rest.enable-enum-translation是否启用通过Spring Data REST默认资源绑定转换枚举值
spring.data.rest.limit-param-nameURL查询字符串参数名称,该参数表明一次返回多少个结果
spring.data.rest.max-page-size页的最大大小
spring.data.rest.page-param-nameURL查询字符串参数名称,该参数表明返回的页面
spring.data.rest.return-body-on-create创建一个实体之后,是否返回一个响应体
spring.data.rest.return-body-on-update更新一个实体之后,是否返回一个响应体
spring.data.rest.sort-param-nameURL查询字符串参数名称,该参数表明对结果排序的方向
spring.data.web.pageable.default-page-size默认页大小20
spring.data.web.pageable.max-page-size能接收的页大小的最大值2000
spring.data.web.pageable.one-indexed-parameters是否暴露和假设基于1的页面数索引。默认为false,表示在请求中一个0数值的页等于第一页false
spring.data.web.pageable.page-parameter页索引参数名称page
spring.data.web.pageable.prefix要加在页码和页大小参数前面的通用前缀
spring.data.web.pageable.qualifier-delimiter要用在限定符和真正页数值和大小属性的分隔符-
spring.data.web.pageable.size-parameter页大小参数名称size
spring.data.web.sort.sort-parameter排序参数名称sort
spring.datasource.dbcp2.abandoned-usage-tracking spring.datasource.dbcp2.access-to-underlying-connection-allowed spring.datasource.dbcp2.auto-commit-on-return spring.datasource.dbcp2.cache-state spring.datasource.dbcp2.clear-statement-pool-on-return spring.datasource.dbcp2.connection-init-sqls spring.datasource.dbcp2.connection-factory-class-name spring.datasource.dbcp2.default-auto-commit spring.datasource.dbcp2.default-catalog spring.datasource.dbcp2.default-query-timeout spring.datasource.dbcp2.default-read-only spring.datasource.dbcp2.default-schema spring.datasource.dbcp2.default-transaction-isolation spring.datasource.dbcp2.disconnection-sql-codes spring.datasource.dbcp2.driver spring.datasource.dbcp2.driver-class-name spring.datasource.dbcp2.eviction-policy-class-name spring.datasource.dbcp2.fast-fail-validation spring.datasource.dbcp2.initial-size spring.datasource.dbcp2.jmx-name spring.datasource.dbcp2.lifo spring.datasource.dbcp2.log-abandoned spring.datasource.dbcp2.log-expired-connections spring.datasource.dbcp2.login-timeout spring.datasource.dbcp2.max-conn-lifetime-millis spring.datasource.dbcp2.max-idle spring.datasource.dbcp2.max-open-prepared-statements spring.datasource.dbcp2.max-total spring.datasource.dbcp2.max-wait-millis spring.datasource.dbcp2.min-evictable-idle-time-millis spring.datasource.dbcp2.min-idle spring.datasource.dbcp2.num-tests-per-eviction-run spring.datasource.dbcp2.password spring.datasource.dbcp2.pool-prepared-statements spring.datasource.dbcp2.remove-abandoned-on-borrow spring.datasource.dbcp2.remove-abandoned-on-maintenance spring.datasource.dbcp2.remove-abandoned-timeout spring.datasource.dbcp2.rollback-on-return spring.datasource.dbcp2.soft-min-evictable-idle-time-millis spring.datasource.dbcp2.test-on-borrow spring.datasource.dbcp2.test-on-create spring.datasource.dbcp2.test-on-return spring.datasource.dbcp2.test-while-idle spring.datasource.dbcp2.time-between-eviction-runs-millis spring.datasource.dbcp2.url spring.datasource.dbcp2.username spring.datasource.dbcp2.validation-query spring.datasource.dbcp2.validation-query-timeout绑定到DBCP2的BasicDataSource实例的常用DBCCP2特定设置
spring.datasource.driver-class-nameJDBC驱动的全量限定名称。默认情况下基于URL自动检测
spring.datasource.embedded-database-connection内嵌数据库的链接明细。默认为在类路径中可用的最合适的内嵌数据库
spring.datasource.generate-unique-name是否生成一个随机数据源名称true
spring.datasource.hikari.allow-pool-suspensionspring.datasource.hikari.auto-commitspring.datasource.hikari.catalogspring.datasource.hikari.connection-init-sqlspring.datasource.hikari.connection-test-queryspring.datasource.hikari.connection-timeoutspring.datasource.hikari.data-source-class-namespring.datasource.hikari.data-source-j-n-d-ispring.datasource.hikari.data-source-propertiesspring.datasource.hikari.driver-class-namespring.datasource.hikari.exception-override-class-namespring.datasource.hikari.health-check-propertiesspring.datasource.hikari.idle-timeoutspring.datasource.hikari.initialization-fail-timeoutspring.datasource.hikari.isolate-internal-queriesspring.datasource.hikari.jdbc-urlspring.datasource.hikari.keepalive-timespring.datasource.hikari.leak-detection-thresholdspring.datasource.hikari.login-timeoutspring.datasource.hikari.max-lifetimespring.datasource.hikari.maximum-pool-sizespring.datasource.hikari.metrics-tracker-factoryspring.datasource.hikari.minimum-idlespring.datasource.hikari.passwordspring.datasource.hikari.pool-namespring.datasource.hikari.read-only spring.datasource.hikari.register-mbeansspring.datasource.hikari.scheduled-executor spring.datasource.hikari.schemaspring.datasource.hikari.transaction-isolationspring.datasource.hikari.usernamespring.datasource.hikari.validation-timeout绑定到Hikari的HikariDataSource的Hikari特定的设置
spring.datasource.jndi-name数据源JNDI位置。当设置时,类,url,用户名,密码被忽略
spring.datasource.name要使用的数据源名称,如果“生成唯一名称”是false。当使用一个内嵌的数据库时默认值为“testdb” ,否则为空
spring.datasource.oracleucp.abandoned-connection-timeout spring.datasource.oracleucp.connection-factory-class-name spring.datasource.oracleucp.connection-factory-properties spring.datasource.oracleucp.connection-harvest-max-count spring.datasource.oracleucp.connection-harvest-trigger-count spring.datasource.oracleucp.connection-labeling-high-cost spring.datasource.oracleucp.connection-pool-name spring.datasource.oracleucp.connection-properties spring.datasource.oracleucp.connection-repurpose-threshold spring.datasource.oracleucp.connection-validation-timeout spring.datasource.oracleucp.connection-wait-timeout spring.datasource.oracleucp.data-source-name spring.datasource.oracleucp.database-name spring.datasource.oracleucp.description spring.datasource.oracleucp.fast-connection-failover-enabled spring.datasource.oracleucp.high-cost-connection-reuse-threshold spring.datasource.oracleucp.inactive-connection-timeout spring.datasource.oracleucp.initial-pool-size spring.datasource.oracleucp.login-timeout spring.datasource.oracleucp.max-connection-reuse-count spring.datasource.oracleucp.max-connection-reuse-time spring.datasource.oracleucp.max-connections-per-shard spring.datasource.oracleucp.max-idle-time spring.datasource.oracleucp.max-pool-size spring.datasource.oracleucp.max-statements spring.datasource.oracleucp.min-pool-size spring.datasource.oracleucp.network-protocol spring.datasource.oracleucp.o-n-s-configuration spring.datasource.oracleucp.pdb-roles spring.datasource.oracleucp.port-number spring.datasource.oracleucp.property-cycle spring.datasource.oracleucp.query-timeout spring.datasource.oracleucp.read-only-instance-allowed spring.datasource.oracleucp.role-name spring.datasource.oracleucp.s-q-l-for-validate-connection spring.datasource.oracleucp.seconds-to-trust-idle-connection spring.datasource.oracleucp.server-name spring.datasource.oracleucp.sharding-mode spring.datasource.oracleucp.time-to-live-connection-timeout spring.datasource.oracleucp.timeout-check-interval spring.datasource.oracleucp.u-r-l spring.datasource.oracleucp.user spring.datasource.oracleucp.validate-connection-on-borrow 绑定到Oracle UCP的 PoolDataSource实例的Oracle UCP特定设置
spring.datasource.password数据库登陆密码
spring.datasource.tomcat.abandon-when-percentage-full spring.datasource.tomcat.access-to-underlying-connection-allowed spring.datasource.tomcat.alternate-username-allowed spring.datasource.tomcat.commit-on-return spring.datasource.tomcat.connection-properties spring.datasource.tomcat.data-source-j-n-d-i spring.datasource.tomcat.db-properties spring.datasource.tomcat.default-auto-commit spring.datasource.tomcat.default-catalog spring.datasource.tomcat.default-read-only spring.datasource.tomcat.default-transaction-isolation spring.datasource.tomcat.driver-class-name spring.datasource.tomcat.fair-queue spring.datasource.tomcat.ignore-exception-on-pre-load spring.datasource.tomcat.init-s-q-l spring.datasource.tomcat.initial-size spring.datasource.tomcat.jdbc-interceptors spring.datasource.tomcat.jmx-enabled spring.datasource.tomcat.log-abandoned spring.datasource.tomcat.log-validation-errors spring.datasource.tomcat.login-timeout spring.datasource.tomcat.max-active spring.datasource.tomcat.max-age spring.datasource.tomcat.max-idle spring.datasource.tomcat.max-wait spring.datasource.tomcat.min-evictable-idle-time-millis spring.datasource.tomcat.min-idle spring.datasource.tomcat.name spring.datasource.tomcat.num-tests-per-eviction-run spring.datasource.tomcat.password spring.datasource.tomcat.propagate-interrupt-state spring.datasource.tomcat.remove-abandoned spring.datasource.tomcat.remove-abandoned-timeout spring.datasource.tomcat.rollback-on-return spring.datasource.tomcat.suspect-timeout spring.datasource.tomcat.test-on-borrow spring.datasource.tomcat.test-on-connect spring.datasource.tomcat.test-on-return spring.datasource.tomcat.test-while-idle spring.datasource.tomcat.time-between-eviction-runs-millis spring.datasource.tomcat.url spring.datasource.tomcat.use-disposable-connection-facade spring.datasource.tomcat.use-equals spring.datasource.tomcat.use-lock spring.datasource.tomcat.use-statement-facade spring.datasource.tomcat.username spring.datasource.tomcat.validation-interval spring.datasource.tomcat.validation-query spring.datasource.tomcat.validation-query-timeout spring.datasource.tomcat.validator-class-name 绑定到Tomcat JDBC的数据源实例的Tomcat数据源特定的设置
spring.datasource.type要使用的连接池实现的全量限定名称,默认情况下,在类路径自动检测
spring.datasource.url数据库的JDBC URL
spring.datasource.username数据库的登陆用户名
spring.datasource.xa.data-source-class-nameXA数据源全量限定名称
spring.datasource.xa.properties.*传入到XA数据源的属性
spring.elasticsearch.connection-timeout当与Elasticsearch沟通时使用的链接超时时间1s
spring.elasticsearch.password用于Elasticsearch身份认证的密码
spring.elasticsearch.path-prefix添加到发送到Elasticsearch每一个请求路径的前缀
spring.elasticsearch.rest.uris[http://localhost:9200]
spring.elasticsearch.restclient.sniffer.delay-after-failure在一个失败后预先安排的嗅探执行的延迟1m
spring.elasticsearch.restclient.sniffer.interval连续的普通嗅探执行的间隔5m
spring.elasticsearch.socket-timeout当与Elasticsearch沟通时使用的Socket超时时间30s
spring.elasticsearch.uris要使用的Elasticsearch实例的逗号分隔列表[http://localhost:9200]
spring.elasticsearch.username用于Elasticsearch身份认证的用户名
spring.elasticsearch.webclient.max-in-memory-size在输入流需要被聚合的时候可以被缓冲的字节的限制数量
spring.h2.console.enabled是否启用控制台false
spring.h2.console.path此路径的控制台是可用的/h2-console
spring.h2.console.settings.trace是否启用追踪输出false
spring.h2.console.settings.web-admin-password访问H2控制台首选项和工具的密码
spring.h2.console.settings.web-allow-others是否启用远访问false
spring.influx.password登陆密码
spring.influx.url连接到InfluxDB实例的URL
spring.influx.user登陆用户
spring.jdbc.template.fetch-size当需要更多的行数时,应该从数据库抓取的行数。使用-1来使用JDBC驱动的默认配置-1
spring.jdbc.template.max-rows行数的最大值。使用-1来使用JDBC驱动的默认配置-1
spring.jdbc.template.query-timeout查询超时。默认是使用JDBC驱动的默认配置。如果时间的后缀没有指定,将使用秒
spring.jooq.sql-dialect要使用的SQL方言。默认自动检测
spring.jpa.database要操作的目标数据库,默认情况自动检测。使用“databasePlat”属性可替代设置
spring.jpa.database-platform要操作的数据库名称,默认情况下自动检测。使用“Database枚举”属性可以替代设置
spring.jpa.defer-datasource-initializationfalse
spring.jpa.generate-ddl启动时是否初始化模式false
spring.jpa.hibernate.ddl-autoDDL模式。实际上用于“hibernate.hbm2ddl.auto”属性的快捷方式。当使用一个内嵌的数据库和没有模式被检测时,默认为“create-drop”。否则默认为“none”
spring.jpa.hibernate.naming.implicit-strategy全量限定名称的隐式命名策略
spring.jpa.hibernate.naming.physical-strategy全量限定名称的物理命名策略
spring.jpa.hibernate.use-new-id-generator-mappings是否使用Hibernate的较新的标志符生成器用于AUTO,TABLE和SEQUENCE。事实上是“hibernate.id.new_generator_mappings”属性的快捷方式。当没有指定时默认为“true”
spring.jpa.mapping-resources映射资源(等价于在persistence.xml文件中的“mapping-file”)
spring.jpa.open-in-view注册OpenEntityManagerInViewInterceptor。将JPA EntityManager 绑定到请求的完整处理的线程true
spring.jpa.properties.*在JPA提供者设置的额外的本地属性
spring.jpa.show-sql是否启用SQL语句的日志false
spring.ldap.anonymous-read-only只读操作是否应该使用一个匿名环境。默认禁用,除非设置了用户名
spring.ldap.base基本后缀,来自于此的所有操作应该发起
spring.ldap.base-environment.*LDA规范设置
spring.ldap.embedded.base-dn基本的DN列表
spring.ldap.embedded.credential.password内嵌的LDAP密码
spring.ldap.embedded.credential.username内嵌的LDAP用户名
spring.ldap.embedded.ldif模式(LDIF)脚本资源引用classpath:schema.ldif
spring.ldap.embedded.port内嵌的LDAP端口0
spring.ldap.embedded.port内嵌的LDAP端口0
spring.ldap.embedded.validation.enabled是否启用LDAP模式校验true
spring.ldap.embedded.validation.schema自定义模式路径
spring.ldap.password服务器登陆密码
spring.ldap.template.ignore-name-not-found-exception通过LdapTempalte搜索时,PartialResultException是否应该忽略false
spring.ldap.template.ignore-size-limit-exceeded-exception通过LdapTempalte搜索时,SizeLimitExceededException是否应该忽略true
spring.ldap.urls服务器的LDAP URL
spring.ldap.username服务器登陆用户名
spring.neo4j.authentication.kerberos-ticket用于连接数据库的Kerberos凭证,与给定的用户名互斥
spring.neo4j.authentication.password服务器的登陆密码
spring.neo4j.authentication.realm要连接的区域
spring.neo4j.authentication.username服务器登陆用户名
spring.neo4j.connection-timeout从连接池拿出连接的超时时间30s
spring.neo4j.max-transaction-retry-time事务重试的最小时间30s
spring.neo4j.pool.connection-acquisition-timeout尝试获取新连接的最大配置超时时间60s
spring.neo4j.pool.idle-time-before-connection-test在池中已经空闲的池连接超过此阈值在他们使用之前将被测试
spring.neo4j.pool.log-leaked-sessions是否记录泄露会话false
spring.neo4j.pool.max-connection-lifetime池连接超过此阈值时长将被关闭并从池中移除1h
spring.neo4j.pool.max-connection-pool-size连接池中指向单个数据库的链接最大数量100
spring.neo4j.pool.metrics-enabled是否启用指标false
spring.neo4j.security.cert-file持有授信的认证的文件路径
spring.neo4j.security.encrypted驱动是否使用加密流量false
spring.neo4j.security.hostname-verification-enabled是否需要主机名称验证true
spring.neo4j.security.trust-strategy要使用的授信策略trust-system-ca-signed-certificates
spring.neo4j.uri驱动使用的URIbolt://localhost:7687
spring.r2dbc.generate-unique-name是否生成一个随机的数据库名称。当启用时忽略任何配置的名称false
spring.r2dbc.name数据库名称。如果url中没有指定则设置。当使用内嵌的数据库默认为"testdb"
spring.r2dbc.password数据库的登陆密码。如果在url中没有指定则设置
spring.r2dbc.pool.enabled池是否启用。要求 r2dbc-pooltrue
spring.r2dbc.pool.initial-size初始化的连接池大小10
spring.r2dbc.pool.max-acquire-time从池中获得连接的最大时间。默认情况下,无限等待
spring.r2dbc.pool.max-create-connection-time等待创建新连接的最大时间。默认情况下,无限等待
spring.r2dbc.pool.max-idle-time允许连接在池中的空闲状态的最长时间30m
spring.r2dbc.pool.max-life-time连接在池中的最长寿命。默认情况下,连接有无限寿命
spring.r2dbc.pool.max-size最大连接池大小10
spring.r2dbc.pool.validation-depth验证深度local
spring.r2dbc.pool.validation-query验证查询
spring.r2dbc.properties.*额外的R2DBC选项
spring.r2dbc.url数据库的R2DBC连接。在url中指定的数据库名称,用户名,密码和池选项,优先级高级单个选项
spring.r2dbc.username数据库的登陆用户名。如果在url中没有指定则设置
spring.redis.client-name使用CLIENT SETNAME类连接上设置的客户端名称
spring.redis.client-type要使用的客户端类型。默认情况下,根据类路径自动检测
spring.redis.cluster.max-redirects跨集群执行命令时需要遵循的最大重定向数
spring.redis.cluster.nodes要引导的“host:prot”对的逗号分隔列表。这表示集群节点的初始列表并要求至少一个条目
spring.redis.connect-timeout连接超时
spring.redis.database连接池工厂使用的数据库索引0
spring.redis.hostRedis 服务器主机localhost
spring.redis.jedis.pool.enabled是否启用连接池。如果“commons-pool2”是可用的则自动启用。使用Jedis,在哨兵模式下池是安装启用的并且这个设置仅应用到单个节点设置
spring.redis.jedis.pool.max-active通过给定的时间可以分配连接的最大数。使用负值则没有限制8
spring.redis.jedis.pool.max-idle在池中空间连接的最大值。使用负值则表明空闲连接不限制数量8
spring.redis.jedis.pool.max-wait当池枯竭时抛出异常之前一个连接分配应该阻塞的最大时间。使用一个赋值则无限阻塞-1ms
spring.redis.jedis.pool.min-idle在池中要维持空闲连接的最小数量的目标。此设置只有如果它和逐出间隔是正数才有效。0
spring.redis.jedis.pool.time-between-eviction-runs空闲对象驱逐者线程运行的间隔时间。当是正数时,空闲对象逐出者线程开始,否则不会执行空闲对象驱逐
spring.redis.lettuce.cluster.refresh.adaptive是否应该使用所有可用的刷新触发器的自适应的拓扑刷新false
spring.redis.lettuce.cluster.refresh.dynamic-refresh-sources是否发现和查询所有集群节点用于获取集群拓扑。当设置为false,只有初始化的种子节点被用作拓扑发现的源true
spring.redis.lettuce.cluster.refresh.period集群拓扑刷新周期
spring.redis.lettuce.pool.enabled是否启用池。如果“commons-pool2”可用,则自动启用。使用Jedis,在哨兵模式中池是隐式启用并且这个设置只应用到单个节点设置
spring.redis.lettuce.pool.max-active通过给定时间的池可以分配连接的最大值。使用负值表示无限制8
spring.redis.lettuce.pool.max-idle在池中空闲连接的最大数量。使用负值表明空闲链接不限制数量8
spring.redis.lettuce.pool.max-wait当池耗尽时抛出异常之前一个连接分配应该阻塞的最大时长。使用一个负值则无限阻塞-1ms
spring.redis.lettuce.pool.min-idle在池中维持空闲链接的最小数量的目标。这个设置只有当它和驱逐运行间隔是正数时生效0
spring.redis.lettuce.pool.time-between-eviction-runs空间对象驱逐器线程运行间隔时间。当正数时,空闲对象驱逐器线程启动,否则不会执行空闲对象驱逐
spring.redis.lettuce.shutdown-timeout关机超时时间100ms
spring.redis.passwordredis服务器登陆密码
spring.redis.portredis服务器端口6379
spring.redis.sentinel.masterredis服务器的名称
spring.redis.sentinel.nodes“host:port”对的逗号分隔列表
spring.redis.sentinel.password用于使用哨兵身份认证的密码
spring.redis.sentinel.username用于使用哨兵身份认证的用户名
spring.redis.ssl是否启用SSL支持false
spring.redis.timeout读超时
spring.redis.url连接URL。覆盖主机,端口和密码。忽略用户。例如“redis://user:password@example.com:6379”
spring.redis.usernameredis服务器的登陆用户名
.A.6. 事务属性
名称描述默认值
spring.jta.atomikos.connectionfactory.borrow-connection-timeout超时时间,单位秒,从池中取出链接30
spring.jta.atomikos.connectionfactory.ignore-session-transacted-flag当创建会话时是否忽略事务处理标志true
spring.jta.atomikos.connectionfactory.local-transaction-mode是否渴望得到本地事务false
spring.jta.atomikos.connectionfactory.maintenance-interval时间,单位秒,池的维护线程运行间隔60
spring.jta.atomikos.connectionfactory.max-idle-time时间,单位秒,连接从池中清除后的时间60
spring.jta.atomikos.connectionfactory.max-lifetime时间,单位秒,连接池化销毁之前的时间。0表示不限制0
spring.jta.atomikos.connectionfactory.max-pool-size池的最大大小1
spring.jta.atomikos.connectionfactory.min-pool-size池的最小大小1
spring.jta.atomikos.connectionfactory.reap-timeout从池中拿的读超时时间,单位秒,0表示无限制0
spring.jta.atomikos.connectionfactory.unique-resource-name在恢复期间用于表示资源的唯一名称jmsConnectionFactory
spring.jta.atomikos.connectionfactory.xa-connection-factory-class-nameXAConnectionFactory的特定供应商实现
spring.jta.atomikos.connectionfactory.xa-properties特定的供应商XA属性
spring.jta.atomikos.datasource.borrow-connection-timeout从池中拿连接的超时时间,单位秒30
spring.jta.atomikos.datasource.concurrent-connection-validation是否使用并发的链接校验true
spring.jta.atomikos.datasource.default-isolation-level池提供的默认的链接隔离级别
spring.jta.atomikos.datasource.login-timeout耗尽数据库连接的超时时间,单位秒0
spring.jta.atomikos.datasource.maintenance-interval池的维持线程运行间隔时间,单位秒60
spring.jta.atomikos.datasource.max-idle-time从池中清楚连接之后的时间,单位秒60
spring.jta.atomikos.datasource.max-lifetime连接池化被销毁之前的时间,单位秒。0表示无限制0
spring.jta.atomikos.datasource.max-pool-size池的最大大小1
spring.jta.atomikos.datasource.min-pool-size池的最小大小1
spring.jta.atomikos.datasource.reap-timeout从池中拿取连接的读超时,单位秒。0表示无限制0
spring.jta.atomikos.datasource.test-query用于在返回连接之前验证连接的SQL查询或者语句
spring.jta.atomikos.datasource.unique-resource-name在恢复期间用于识别资源的唯一名称dataSource
spring.jta.atomikos.datasource.xa-data-source-class-nameXAConnectionFactory的特定供应商实现
spring.jta.atomikos.datasource.xa-properties特定的供应商XA属性
spring.jta.enabled是否启用JTA支持true
spring.transaction.default-timeout默认事务的超时时间。如果时间后缀没有指定,默认为秒
spring.transaction.rollback-on-commit-failure提交失败时是否回滚
.A.7. 数据迁移属性
名称描述默认值
spring.flyway.baseline-description当应用一个基线时标记已存在的模式的描述<< Flyway Baseline >>
spring.flyway.baseline-migration-prefix基线迁移的文件前缀。需要Flyway TeamsB
spring.flyway.baseline-on-migrate当迁移一个非空模式,是否自动化调用基线false
spring.flyway.baseline-version当执行基线时标记现有模式的版本1
spring.flyway.batch当执行SQL语句时,是否批量执行。需要Flayway Teams
spring.flyway.cherry-pickFlyway在迁移或者撤销时应该考虑的迁移。当为空时,考虑所有可用的迁移。需要Flyway Teams
spring.flyway.clean-disabled是否禁用数据库清除false
spring.flyway.clean-on-validation-error当发生校验错误时是否自动调用清除false
spring.flyway.connect-retries当尝试连接数据库的重试最大次数0
spring.flyway.connect-retries-interval当尝试连接数据库的重试间隔的最大时间120
spring.flyway.create-schemasFlyway是否应该尝试创建在模式属性中指定的模式true
spring.flyway.default-schema通过Flyway管理的默认模式名称(区分大小写)
spring.flyway.detect-encoding是否尝试自动化检测SQL迁移文件编码。需要Flyway Teams
spring.flyway.driver-class-nameJDBC驱动的全限定名称。基于默认的URL自动检测
spring.flyway.enabled是否启用flywaytrue
spring.flyway.encodingSQL迁移的编码UTF-8
spring.flyway.error-overrides内建的错误处理规则来覆盖特定SQL状态和错误编码。需要Flayway Teams
spring.flyway.fail-on-missing-locations如果迁移脚本位置不存在是否报错false
spring.flyway.group在应用所有挂起的迁移时,是否将他们分组到同一个事务中false
spring.flyway.ignore-migration-patterns当校验迁移时,忽略匹配格式的以逗号分隔列表,需要Flyway Teams
spring.flyway.init-sqls在获取连接之后,立即执行初始化连接的SQL语句
spring.flyway.installed-by在模式历史表中记录的已应用迁移的用户名
spring.flyway.jdbc-properties.*传入到JDBC驱动的属性。需要Flayway Teams
spring.flyway.kerberos-config-fileKerberos配置文件的路径。需要Flyway Teams
spring.flyway.license-keyFlyway Teams的许可key
spring.flyway.locations迁移脚本的位置。可以包括特定的“vendor”占位符以使用特定的供应商位置[classpath:db/migration]
spring.flyway.lock-retry-count当尝试获取锁时,重试的最大次数50
spring.flyway.mixed是否允许事务的和非事务的语句在相同的迁移中混合false
spring.flyway.oracle-kerberos-cache-fileOracle Kerberos缓存文件的路径。需要Flyway Teams
spring.flyway.oracle-sqlplus是否启用Oracle SQL*Plus命令的支持。需要Flyway Teams
spring.flyway.oracle-sqlplus-warn当遇到尚不支持的Oracle SQL*Plus语句是否发布一个告警而不是一个错误,需要Flyway Teams
spring.flyway.oracle-wallet-locationOracle Wallet的位置,用于自动登陆数据库。需要Flyway Teams
spring.flyway.out-of-order是否允许迁移无序运行false
spring.flyway.output-query-results当执行迁移时,Flyway是否应该输出一个查询结果的表格。需要Flyway teams
spring.flyway.password要迁移的数据库密码
spring.flyway.placeholder-prefix在迁移脚本中占位符前缀${
spring.flyway.placeholder-replacement在迁移脚本中执行占位符替代true
spring.flyway.placeholder-separator默认的占位符分隔符:
spring.flyway.placeholder-suffix迁移脚本中占位符后缀}
spring.flyway.placeholders.*占位符和应用到sql迁移脚本的代替物
spring.flyway.repeatable-sql-migration-prefix可重复SQL迁移的文件名称前缀R
spring.flyway.schemasFlyway管理的模式名称(忽略大小写)
spring.flyway.script-placeholder-prefix在迁移脚本中的占位符前缀FP__
spring.flyway.script-placeholder-suffix在迁移脚本中的占位符后缀__
spring.flyway.skip-default-callbacks是否过滤默认回调。如果为true,只使用自定义回调false
spring.flyway.skip-default-resolvers是否过滤默认解析。如果为true,只使用自定义解析false
spring.flyway.skip-executing-migrationsFlyway是否应该过滤执行迁移的内容并只更新模式历史表。需要Flyway teams
spring.flyway.sql-migration-prefixSQL迁移的文件前缀V
spring.flyway.sql-migration-separatorSQL迁移的文件名称分隔__
spring.flyway.sql-migration-suffixesSQL迁移的文件名称后缀[.sql]
spring.flyway.sql-server-kerberos-login-fileSQL服务器Kerberos登陆文件路径。需要Flyway Teams
spring.flyway.stream执行SQL迁移时,是否对SQL迁移进行流操作。需要Flyway Teams
spring.flyway.tableFlyway使用的模式历史表的名称flyway_schema_history
spring.flyway.tablespace创建模式历史表的表空间。当使用不支持表空间的数据库时忽略。默认为Flyway使用连接的默认表空间
spring.flyway.target应该考虑迁移到的目标版本
spring.flyway.url迁移的数据库的JDBC url,如果没有设置,使用主要配置的数据源
spring.flyway.user迁移的数据库的登陆用户名
spring.flyway.validate-migration-naming是否校验脚本不遵守正确命名约定的迁移和回调false
spring.flyway.validate-on-migrate当执行一个迁移时,是否自动化调用验证true
spring.liquibase.change-log修改日志配置路径classpath:/db/changelog/db.changelog-master.yaml
spring.liquibase.clear-checksums是否清除在正确的修改日志所有的总和检查,所以在下一次修改将重新计算false
spring.liquibase.contexts使用的运行时上下文的逗号分隔列表
spring.liquibase.database-change-log-lock-table用于追踪的并行的Liquibase用法的表名称DATABASECHANGELOGLOCK
spring.liquibase.database-change-log-table用于追踪的修改历史的表名称DATABASECHANGELOG
spring.liquibase.default-schema默认的数据库模式。
spring.liquibase.driver-class-nameJDBC驱动的全量限定名称。默认情况下,基于URL自动检测
spring.liquibase.drop-first是否优先删除数据库模式false
spring.liquibase.enabled是否启用Liquibase支持true
spring.liquibase.labels运行时使用的标签的逗号分隔列表
spring.liquibase.liquibase-schema用于Liquibase对象的模式
spring.liquibase.parameters.*修改日志参数
spring.liquibase.password迁移数据库的登陆密码
spring.liquibase.rollback-file当执行更新时,书写回滚SQL的文件
spring.liquibase.tag当应用数据库修改时要使用的标签的名称。也可以使用“rollbackFile”来为与该标签关联的现有修改生成回滚脚本
spring.liquibase.test-rollback-on-update在执行更新之前,是否应该测试回滚false
spring.liquibase.url迁移的数据库的JDBC url。如果没有设置,使用主要的配置的数据源
spring.liquibase.user迁移的数据库的登陆用户名。
spring.sql.init.continue-on-error当发生时,初始化是否应该继续false
spring.sql.init.data-locations应用到数据库的数据(DML)脚本位置
spring.sql.init.encoding模式和数据脚本的编码
spring.sql.init.mode应用于决定是否应该执行初始化的模式embedded
spring.sql.init.password当应用初始化脚本时,要使用的数据库密码(如果不同)
spring.sql.init.platform在默认模式中使用的平台,或者数据脚本位置,schema- p l a t f o r m . s q l 和 d a t a − {platform}.sql 和 data- platform.sqldata{platform}.sql.all
spring.sql.init.schema-locations应用到数据库的模式脚本的位置
spring.sql.init.separator在模式和数据脚本中语句的分隔符;
spring.sql.init.username当应用初始化脚本要使用的数据库的用户名(如果不同)
.A.8. 集成属性
名称描述默认值
spring.artemis.broker-urlArtemis broker 端口tcp://localhost:61616
spring.artemis.embedded.cluster-password集群密码
spring.artemis.embedded.data-directory日志文件目录,如果持久化关闭则不必要
spring.artemis.embedded.enabled如果Artemis服务器API是可用的,是否启用内嵌模式true
spring.artemis.embedded.persistent是否启用持久化存储false
spring.artemis.embedded.queues在启动时创建的以逗号分隔的队列列表[]
spring.artemis.embedded.server-id服务器ID,默认情况下,使用使用自动增加的计数器0
spring.artemis.embedded.topics在启动时创建的以逗号分隔的主题列表[]
spring.artemis.modeArtemis部署模式,默认情况下自动检测
spring.artemis.passwordbroker登陆密码
spring.artemis.pool.block-if-full当一个连接请求时并且池是满的,是否阻塞。设置它为false抛出一个异常代替true
spring.artemis.pool.block-if-full-timeout如果池是满的在抛出一个异常前,阻塞时间-1ms
spring.artemis.pool.enabled是否应该创建一个JmsPoolConnectionFactory,而不是常规的ConnectionFactoryfalse
spring.artemis.pool.idle-timeout连接空闲超时时间30s
spring.artemis.pool.max-connections池化连接的最大数量1
spring.artemis.pool.max-sessions-per-connection池中每个连接的最大池会话数500
spring.artemis.pool.time-between-expiration-check空闲连接回收线程运行间隔的睡眠时间。当负数时,没有空闲连接回收线程运行。-1ms
spring.artemis.pool.use-anonymous-producers是否只使用一个匿名的“MessageProducer”实例。设置为false,每次需要MessageProducer则创建它。true
spring.artemis.userbroker的登陆用户
spring.batch.jdbc.initialize-schema数据库模式初始化模式embedded
spring.batch.jdbc.isolation-level-for-create当为新作业创建作业元数据时,使用的事务隔离级别。根据JPA是否使用自动检测
spring.batch.jdbc.platform如果使用@@platform@@占位符在初始化脚本中要使用的平台。默认情况下自动检测
spring.batch.jdbc.schema用于初始化数据库模式的SQL文件的路径classpath:org/springframework/batch/core/schema-@@platform@@.sql
spring.batch.jdbc.table-prefix所有批处理元数据表的表前缀
spring.batch.job.enabled在启动时在上下文中运行所有Spring Batch作业true
spring.batch.job.name启动时执行的作业名称。如果在上下文中发现多个作业必须指定
spring.hazelcast.config用于初始化Hazelcast配置的位置
spring.integration.channel.auto-create如果必须是否创建输入频道true
spring.integration.channel.max-broadcast-subscribers允许的默认的订阅者数量,例如‘PublishSubscribeChannel’
spring.integration.channel.max-unicast-subscribers允许的默认的订阅者数量,例如‘DirectChannel’
spring.integration.endpoint.no-auto-startup在应用程序启动期间,不应该自动启动的端点bean名称格式,以逗号分隔的列表
spring.integration.endpoint.read-only-headers在头数据复制操作期间,不应该填充到Message实例的信息头名称。以逗号分隔的列表
spring.integration.endpoint.throw-exception-on-late-reply当网关不在期望应答时,是否抛出异常false
spring.integration.error.ignore-failures对于全局“errorChannel”的多个处理器是否忽略失败true
spring.integration.error.require-subscribers当消息没有消费者时,是否不静默地忽略在全局“errorChanel”上信息。true
spring.integration.jdbc.initialize-schema数据库模式初始化模式embedded
spring.integration.jdbc.platform如果使用@@platform@@占位符在初始化中使用的平台。默认情况下自动检测
spring.integration.jdbc.schema用于初始化数据库模式的SQL文件路径classpath:org/springframework/integration/jdbc/schema-@@platform@@.sql
spring.integration.management.default-logging-enabledSpring Integration 组件是否应该在主要的信息流中执行日志。当禁用时,将跳过这样的日志,而不检查日志级别。当启用时,通过日志系统的日志级别配置正常地控制此类日志记录。true
spring.integration.poller.cron用于轮询的计划任务表达式。与’fixedDelay’和’fixedRate’互斥
spring.integration.poller.fixed-delay循环延迟时间。与’cron’和’fixedRate’互斥
spring.integration.poller.fixed-rate循环延迟时间。与’fixedDelay’和’cron’互斥
spring.integration.poller.initial-delay循环延迟时间。应用于’fixedDelay’和’fixedRate’;忽略’cron’
spring.integration.poller.max-messages-per-poll每个循环周期的要循环信息的最大数量
spring.integration.poller.receive-timeout循环时等待消息的时长1s
spring.integration.rsocket.client.host要连接的TCP RSocket服务器主机
spring.integration.rsocket.client.port要连接的TCP RSocket服务器端口
spring.integration.rsocket.client.uri要连接的TCP RSocket服务器uri
spring.integration.rsocket.server.message-mapping-enabled是否通过Spring Integration处理RSocket消息映射false
spring.jms.cache.consumers是否缓存消息消费者false
spring.jms.cache.enabled是否缓存会话true
spring.jms.cache.producers是否缓存消息生产者true
spring.jms.cache.session-cache-size会话缓存的大小(每个JMS会话类型)1
spring.jms.jndi-name连接工厂JNDI名称。当设置时,优先于其他连接工厂自动配置
spring.jms.listener.acknowledge-mode容器的应答模式。默认情况下,监听器处理自动确认
spring.jms.listener.auto-startup在启动时自动启动容器true
spring.jms.listener.concurrency最小的并行消费者数量
spring.jms.listener.max-concurrency最大的并行消费者数量
spring.jms.listener.receive-timeout接收调用的超时时间。使用-1表示不等待接收或者0表示根本没有超时。后者只有不在事务中运行才是可行的并且通常不建议使用,因为它会阻止彻底关闭
spring.jms.pub-sub-domain是否默认的目标类型是主题false
spring.jms.template.default-destination在没有目标参数的发送和接收操作上使用的默认目标。
spring.jms.template.delivery-delay发送调用使用的投递延迟
spring.jms.template.delivery-mode投递模式。当设置时启用QOS(Quality Of Service)
spring.jms.template.priority当发送时消息的优先级。当设置时启用QOS(Quality Of Service)
spring.jms.template.qos-enabled当发送一个消息时,是否显式地启用QOS.当启用时,在发送一个消息时,将使用投递模式,优先级和活跃时间属性。当定制这些设置至少一个时,QOS自动启用。
spring.jms.template.receive-timeout接收调用时使用的超时时间
spring.jms.template.time-to-live当发送时,消息的活跃时间。当设置时启用QOS(Quality Of Service)
spring.kafka.admin.client-id当发出请求时,传入到服务器的ID。用于服务器端日志
spring.kafka.admin.fail-fast在启动时,broker不可用时是否快速失败。false
spring.kafka.admin.properties.*用于配置客户端的额外的特定管理的属性
spring.kafka.admin.security.protocol用于与broker交流的安全协议
spring.kafka.admin.ssl.key-password秘钥存储秘钥或者秘钥存储文件私钥密码
spring.kafka.admin.ssl.key-store-certificate-chain使用X.509 身份认证列表的PEM格式的身份认证链路
spring.kafka.admin.ssl.key-store-key使用PKCS#8秘钥的PEM格式的私钥
spring.kafka.admin.ssl.key-store-location秘钥存储文件的位置
spring.kafka.admin.ssl.key-store-password秘钥存储文件的存储密码
spring.kafka.admin.ssl.key-store-type秘钥存储类型
spring.kafka.admin.ssl.protocol使用的SSL协议
spring.kafka.admin.ssl.trust-store-certificates使用X.509身份认证的PEMG格式授信的身份认证
spring.kafka.admin.ssl.trust-store-location信任的存储文件的位置
spring.kafka.admin.ssl.trust-store-password信任的存储文件的存储密码
spring.kafka.admin.ssl.trust-store-type信任的存储类型
spring.kafka.bootstrap-servers为建立Kafka集群初始化连接所使用的host:port对的逗号隔开列表。应用到所有组件,除非重写
spring.kafka.client-id当发出请求时,传入到服务器的ID。用于服务器端的日志
spring.kafka.consumer.auto-commit-interval消费者偏移量自动提交到Kakfa的频率。如果’enable.auto.commit’设置为true
spring.kafka.consumer.auto-offset-resetKafka中没有初始的偏移量或者在服务器上,当前偏移量不在存在,所做的。
spring.kafka.consumer.bootstrap-servers用于建立初始化Kafka集群的链接使用的host:port逗号分隔列表。对于消费者覆盖全局属性
spring.kafka.consumer.client-id当发出请求时,传入到服务器的ID。用于服务器端日志
spring.kafka.consumer.enable-auto-commit在后端消费者的偏移量是否周期提交
spring.kafka.consumer.fetch-max-wait服务器为获取请求应该返回的最小数据量
spring.kafka.consumer.group-id标识此消费者所属消费者组的唯一字符串
spring.kafka.consumer.heartbeat-interval消费者协调人期望的心跳时间间隔
spring.kafka.consumer.isolation-level用于读取以事务方式写入的消息的隔离级别read-uncommitted
spring.kafka.consumer.key-deserializer秘钥的反序列化类
spring.kafka.consumer.max-poll-records在单个poll()调用返回的最大记录数
spring.kafka.consumer.properties.*用于配置客户端的额外的特定消费者属性
spring.kafka.consumer.security.protocol用于与broker交流的安全协议
spring.kafka.consumer.ssl.key-password在秘钥存储秘钥或者秘钥存储文件中的私钥密码
spring.kafka.consumer.ssl.key-store-certificate-chain使用X.509身份认证列表的PEM格式的身份认证链路
spring.kafka.consumer.ssl.key-store-key使用PKCS#8秘钥PEM格式的私钥
spring.kafka.consumer.ssl.key-store-location秘钥存储文件位置
spring.kafka.consumer.ssl.key-store-password用于秘钥文件的存储密码
spring.kafka.consumer.ssl.key-store-type秘钥存储类型
spring.kafka.consumer.ssl.protocol使用的SSL协议
spring.kafka.consumer.ssl.trust-store-certificates使用X.509身份认证PEM格式的信任的身份认证
spring.kafka.consumer.ssl.trust-store-location信任的存储文件位置
spring.kafka.consumer.ssl.trust-store-password信任的存储文件密码
spring.kafka.consumer.ssl.trust-store-type信任的存储位置
spring.kafka.consumer.value-deserializer值的反序列化类
spring.kafka.jaas.control-flag登陆配置的控制标志required
spring.kafka.jaas.enabled是否启用JAAS配置false
spring.kafka.jaas.login-module登陆模块com.sun.security.auth.module.Krb5LoginModule
spring.kafka.jaas.options.*额外的JAAS选项
spring.kafka.listener.ack-count当ackMode是"COUNT"或者"COUNT_TIME"时偏移量提交间隔记录数量
spring.kafka.listener.ack-mode监听者AckMode.请查看spring-kafka文档
spring.kafka.listener.ack-time当ackMode是"TIME"或者"COUNT_TIME"时,偏移量提交间隔时间
spring.kafka.listener.async-acks支持异步记录确认。仅使用于当spring.kafka.listener.ack-mode是手动模式或者手动即时模式
spring.kafka.listener.client-id用于监听器的消费者client.id属性的前缀
spring.kafka.listener.concurrency在监听器容器中运行的现场数量
spring.kafka.listener.idle-between-pollsConsumer.poll(Duration)调用之间的睡眠间隔
spring.kafka.listener.idle-event-interval发布空间消费者(没有数据接收)时间之间的时间
spring.kafka.listener.idle-partition-event-interval发布空闲分区消费者事件(在分区没有数据接收)之间的时间
spring.kafka.listener.immediate-stop在当前记录被处理之后或者在前一个轮询所有记录被处理之后是否容器停止false
spring.kafka.listener.log-container-config在初始化期间是否记录容器配置(INFO级别)
spring.kafka.listener.missing-topics-fatal如果在broker上至少一个配置的topic不存在,容器是否应该启动失败false
spring.kafka.listener.monitor-interval检查无响应的消费者之间时间。如果时间后缀没有指定,使用秒
spring.kafka.listener.no-poll-threshold将倍增器应用到"pollTimeout"以决定一个消费者是无响应的
spring.kafka.listener.poll-timeout当轮询消费者时使用的超时时间
spring.kafka.listener.type监听器类型single
spring.kafka.producer.acks在考虑一个请求完成之前生产者需要领导者已经接收应答的数量
spring.kafka.producer.batch-size默认的批处理大小。一个小的批处理大小将使批处理不常见,并可能降低吞吐量。(批处理大小为0,禁止批处理)
spring.kafka.producer.bootstrap-servers使用的逗号分隔的host:port对列表,用于建立初始连接到Kafka集群。覆盖全局属性,对于生产者
spring.kafka.producer.buffer-memory总内存大小。生产者可用于等待发送到服务器的缓存记录
spring.kafka.producer.client-id当发出请求时,传入到服务器的ID。用于服务器端日志
spring.kafka.producer.compression-type通过生产者生成数据的压缩类型
spring.kafka.producer.key-serializer秘钥的序列化类
spring.kafka.producer.properties.*用于配置客户端额外的特定的生产者属性
spring.kafka.producer.retries当大于0,启用失败发送重试
spring.kafka.producer.security.protocol用于与broker交流的安全协议
spring.kafka.producer.ssl.key-password在秘钥存储秘钥或者秘钥存储文件中的私钥密码
spring.kafka.producer.ssl.key-store-certificate-chain使用X.509身份认证列表的PEM格式的身份认证链路
spring.kafka.producer.ssl.key-store-key使用PKCS#8 秘钥的PEM格式的私钥
spring.kafka.producer.ssl.key-store-location秘钥存储文件的位置
spring.kafka.producer.ssl.key-store-password秘钥存储文件存储密码
spring.kafka.producer.ssl.key-store-type秘钥存储类型
spring.kafka.producer.ssl.protocol要使用的SSL协议
spring.kafka.producer.ssl.trust-store-certificates使用X.509身份认证的PEM格式的信任的身份认证
spring.kafka.producer.ssl.trust-store-location授信的存储文件位置
spring.kafka.producer.ssl.trust-store-password授信的存储文件存储密码
spring.kafka.producer.ssl.trust-store-type授信的存储类型
spring.kafka.producer.transaction-id-prefix当非空时,为生产者启用事务支持
spring.kafka.producer.value-serializer值的序列化类
spring.kafka.properties.*额外属性,生产者消费者通用,用于配置客户端
spring.kafka.retry.topic.attempts将消息发送到DLT之前进行的处理尝试的总数3
spring.kafka.retry.topic.delay标准后移周期。在指数情况下用作初值,在均匀情况下用作最小值。1s
spring.kafka.retry.topic.enabled是否启用基于主题的非阻塞重试。false
spring.kafka.retry.topic.max-delay重试间隔等待最大值。如果小于这个延迟,然后应用30s默认值0
spring.kafka.retry.topic.multiplier使用的倍增器用于生成下一个退回延迟。0
spring.kafka.retry.topic.random-back-off是否有退回延迟。false
spring.kafka.security.protocol用于与broker交流的安全协议。
spring.kafka.ssl.key-password在秘钥存储秘钥和秘钥存储文件中私钥的密码。
spring.kafka.ssl.key-store-certificate-chain使用X.509身份认证的PEM格式的身份认证
spring.kafka.ssl.key-store-key使用PKCS#8秘钥的PEM格式的私钥
spring.kafka.ssl.key-store-location私钥存储文件的位置
spring.kafka.ssl.key-store-password用于秘钥存储文件的存储密码
spring.kafka.ssl.key-store-type秘钥存储的类型
spring.kafka.ssl.protocol要使用的SSL协议
spring.kafka.ssl.trust-store-certificates使用X.509身份认证PEM格式的信任的身份认证
spring.kafka.ssl.trust-store-location信任存储文件的位置
spring.kafka.ssl.trust-store-password用于信任存储文件的存储密码
spring.kafka.ssl.trust-store-type信任存储类型
spring.kafka.streams.application-idKafka流application.id属性;默认spring.application.name
spring.kafka.streams.auto-startup是否自动启动流工厂beantrue
spring.kafka.streams.bootstrap-servers用于建立初始化连接到Kafka集群的使用的host:port对的逗号分隔列表。覆盖全局属性,对于流
spring.kafka.streams.cache-max-size-buffering用于缓存跨所有线程的最大内存大小
spring.kafka.streams.cleanup.on-shutdown在关机时清除应用程序的本地状态目录false
spring.kafka.streams.cleanup.on-startup在启动时清除应用程序的本地状态目录false
spring.kafka.streams.client-id当发出请求时,传入服务器的ID。用于服务端的日志
spring.kafka.streams.properties.*用于配置流的额外Kafka属性
spring.kafka.streams.replication-factor通过流处理应用程序创建的用于日志更改主题和重新分区主题的复制因子
spring.kafka.streams.security.protocol用于与broker交流的安全协议
spring.kafka.streams.ssl.key-password在秘钥存储秘钥或者秘钥存储文件的私钥密码
spring.kafka.streams.ssl.key-store-certificate-chain使用X.509身份认证列表PEM格式的身份认证
spring.kafka.streams.ssl.key-store-key使用PKCS#8秘钥的PEM格式的私钥
spring.kafka.streams.ssl.key-store-location秘钥存储文件的位置
spring.kafka.streams.ssl.key-store-password秘钥存储文件的存储密码
spring.kafka.streams.ssl.key-store-type秘钥存储类型
spring.kafka.streams.ssl.protocol要使用的SSL协议
spring.kafka.streams.ssl.trust-store-certificates使用X.509身份认证PEM格式的信任的身份认证
spring.kafka.streams.ssl.trust-store-location信任存储文件的位置
spring.kafka.streams.ssl.trust-store-password信任存储文件的存储密码
spring.kafka.streams.ssl.trust-store-type信任存储类型
spring.kafka.streams.state-dir用于状态存储的目录位置
spring.kafka.template.default-topic发送信息的默认主题
spring.kafka.template.transaction-id-prefix事务ID前缀,覆盖在生产者工厂的事务ID前缀
spring.rabbitmq.address-shuffle-mode用于洗牌配置的地址的模式none
spring.rabbitmq.addresses逗号分隔的地址列表,客户端应该连接的地址。当设置时,忽略host和port
spring.rabbitmq.cache.channel.checkout-timeout如果已经到达缓存大小,等待获取一个频道的时间。如果是0,一直创建一个新的通道
spring.rabbitmq.cache.channel.size在缓存中保留频道的个数。当"check-timeout">0,每个连接最大的通道
spring.rabbitmq.cache.connection.mode连接工厂缓存模式channel
spring.rabbitmq.cache.connection.size连接到缓存的个数。当模式为CONNECTION时有用
spring.rabbitmq.channel-rpc-timeout在通道中用于RPC调用的延续超时。设置它为0则永久等待10m
spring.rabbitmq.connection-timeout连接超时。设置它为0则永久等待
spring.rabbitmq.dynamic是否创建一个AmqpAdmin beantrue
spring.rabbitmq.hostRabbitMQ主机。如果已经设置地址请忽略localhost
spring.rabbitmq.listener.direct.acknowledge-mode容器的应答模式
spring.rabbitmq.listener.direct.auto-startup在启动时是否自动启动容器true
spring.rabbitmq.listener.direct.consumers-per-queue每个队列消费者数量
spring.rabbitmq.listener.direct.de-batching-enabled容器应该将批处理消息作为离散消息呈现,还是使用批处理调用监听器true
spring.rabbitmq.listener.direct.default-requeue-rejected默认情况下,被拒绝的投递是否重回队列
spring.rabbitmq.listener.direct.idle-event-interval多长时间应该发布空闲容器事件
spring.rabbitmq.listener.direct.missing-queues-fatal如果通过在broker上,容器声明的队列不可用是否失败false
spring.rabbitmq.listener.direct.prefetch在每一个消费者可未处理的未确认消息的最大数量
spring.rabbitmq.listener.direct.retry.enabled是否启用发布重试false
spring.rabbitmq.listener.direct.retry.initial-interval第一和第二尝试投递消息之间时间1000ms
spring.rabbitmq.listener.direct.retry.max-attempts尝试投递一个消息的最大次数3
spring.rabbitmq.listener.direct.retry.max-interval尝试之间时间的最大值10000ms
spring.rabbitmq.listener.direct.retry.multiplier应用到上一个重试间隔的倍增器1
spring.rabbitmq.listener.direct.retry.stateless重试是无状态还是有状态的true
spring.rabbitmq.listener.simple.acknowledge-mode容器的应答模式
spring.rabbitmq.listener.simple.auto-startup在启动时是否自动启动容器true
spring.rabbitmq.listener.simple.batch-size批处理大小,表示为容器将使用的物理消息的数量
spring.rabbitmq.listener.simple.concurrency监听器调用线程的最小个数
spring.rabbitmq.listener.simple.consumer-batch-enabled容器是否基于’receive-timeout’和’batch-size’创建消息的批处理。强制’de-batching-enabled’为true来包含一个生产者创建的批处理作为离散记录的批处理的内容false
spring.rabbitmq.listener.simple.de-batching-enabled容器是否应该存在批处理的信息作为散列信息或者调用批处理监听器true
spring.rabbitmq.listener.simple.default-requeue-rejected默认情况下已拒绝的投递是否重回队列
spring.rabbitmq.listener.simple.idle-event-interval推送空闲容器时间频率
spring.rabbitmq.listener.simple.max-concurrency最大的监听器调用线程数量
spring.rabbitmq.listener.simple.missing-queues-fatal如果在broker上通过容器声明的队列是不可用的是否失败 或者 如果一个或者更多队列在运行时被删除是否停止容器true
spring.rabbitmq.listener.simple.prefetch每个消费者可未处理的未应答信息的最大个数
spring.rabbitmq.listener.simple.retry.enabled是否启用推送重试false
spring.rabbitmq.listener.simple.retry.initial-interval第一和第二尝试投递信息之间的时间1000ms
spring.rabbitmq.listener.simple.retry.max-attempts尝试投递一个信息的最大数量3
spring.rabbitmq.listener.simple.retry.max-interval尝试间隔时间最大值10000ms
spring.rabbitmq.listener.simple.retry.multiplier应用到上一个重试间隔的倍增器1
spring.rabbitmq.listener.simple.retry.stateless重试是无状态还是有状态true
spring.rabbitmq.listener.stream.auto-startup在启动时是否自动启动容器true
spring.rabbitmq.listener.stream.native-listener容器是否将支持处理本身流消息监听器,而不是Spring AMQP消息false
spring.rabbitmq.listener.type监听器容器类型simple
spring.rabbitmq.password登陆并根据代理进行身份认证guest
spring.rabbitmq.portRabbitMQ端口。如果address已经设置请忽略。默认为5672或者如果启用SSL则为5671
spring.rabbitmq.publisher-confirm-type使用的推送器确认类型
spring.rabbitmq.publisher-returns是否启用推送器返回false
spring.rabbitmq.requested-channel-max客户端请求的每个连接通道的个数。使用0表示无限制2047
spring.rabbitmq.requested-heartbeat请求的心跳超时时间;0表示没有。如果时间后缀没有指定,则使用秒
spring.rabbitmq.ssl.algorithm使用的SSL算法。默认情况下,Rabbit客户端类库配置的
spring.rabbitmq.ssl.enabled是否启用SSL支持。如果一个地址通过协议(amqp:// vs. amqps://)提供则自动决定。
spring.rabbitmq.ssl.key-store持有SSL身份认证的秘钥存储的路径。
spring.rabbitmq.ssl.key-store-algorithm秘钥存储算法。SunX509
spring.rabbitmq.ssl.key-store-password用于访问秘钥存储的密码
spring.rabbitmq.ssl.key-store-type秘钥存储类型PKCS12
spring.rabbitmq.ssl.trust-store持有SSL认证的信任的存储
spring.rabbitmq.ssl.trust-store-algorithm信任的存储算法SunX509
spring.rabbitmq.ssl.trust-store-password用于访问信任的存储密码
spring.rabbitmq.ssl.trust-store-type信任的存储类型JKS
spring.rabbitmq.ssl.validate-server-certificate是否启用服务器端验证校验true
spring.rabbitmq.ssl.verify-hostname是否启用主机名称校验true
spring.rabbitmq.stream.host启用的流插件的RabbitMQ实例的主机localhost
spring.rabbitmq.stream.name流名称
spring.rabbitmq.stream.passwordbroker身份认证登陆密码。当没有设置时,使用spring.rabbitmq.password
spring.rabbitmq.stream.port使用启用的流插件的RabbitMQ实例的流端口
spring.rabbitmq.stream.usernamebroker的身份验证的登陆用户。当没有设置时,使用spring.rabbitmq.username
spring.rabbitmq.template.default-receive-queue当没有显式指定时从其中接受消息的默认队列的名称
spring.rabbitmq.template.exchange用于发送操作的默认交换的名称
spring.rabbitmq.template.mandatory是否启用强制消息
spring.rabbitmq.template.receive-timeoutreceive()操作的超时时间
spring.rabbitmq.template.reply-timeoutsendAndReceive()操作的超时时间
spring.rabbitmq.template.retry.enabled是否启用推送重试false
spring.rabbitmq.template.retry.initial-interval第一和第二尝试投递消息之间时间1000ms
spring.rabbitmq.template.retry.max-attempts投递一个消息的最大尝试次数3
spring.rabbitmq.template.retry.max-interval投递之间间隔最大值10000ms
spring.rabbitmq.template.retry.multiplier应用到上一次重试间隔的倍增器1
spring.rabbitmq.template.routing-key用于发送操作的默认路由键的值
spring.rabbitmq.usernamebroker身份验证的登陆用户guest
spring.rabbitmq.virtual-host当连接到broker时,使用的虚拟主机
spring.webservices.path作为服务的基本URI路径services
spring.webservices.servlet.init.*传入到Spring Web Service的Servlet初始参数
spring.webservices.servlet.load-on-startup在启动时加载Spring Web Services servlet的优先级-1
spring.webservices.wsdl-locations作为bean暴露的WSDL和附带的XSD逗号分隔的位置列表
.A.9. Web属性
名称描述默认值
spring.hateoas.use-hal-as-default-json-media-typeapplication/hal+json响应是否应该发送到接受application/json的请求true
spring.mvc.async.request-timeout异步请求处理超时之前的时间。如果这个值没有设置,使用默认的底层实现的超时时间
spring.mvc.contentnegotiation.favor-parameter一个请求参数(默认为“format”)是否应该用于决定请求的媒体类型false
spring.mvc.contentnegotiation.media-types.*将文件扩展名映射为媒体类型以进行内容协商,例如将yaml转为text/yaml
spring.mvc.contentnegotiation.parameter-name当启用“favor-parameter”时,要使用的查询参数名称
spring.mvc.converters.preferred-json-mapper用于HTTP信息转换所使用的首选JSON映射。默认情况下,根据环境自动检测
spring.mvc.dispatch-options-request是否分发OPTIONS请求到FrameworkServlet的doService方法true
spring.mvc.dispatch-trace-request是否分发TRACE请求到FrameworkServlet的doService方法false
spring.mvc.format.date使用的日期格式,例如‘dd/MM/yyyy’
spring.mvc.format.date-time使用的日期时间格式,例如‘yyyy-MM-dd HH:mm:ss’
spring.mvc.format.time要使用的时间格式,例如‘HH:mm:ss’
spring.mvc.formcontent.filter.enabled是否启用Spring的HiddenHttpMethodFilterfalse
spring.mvc.ignore-default-model-on-redirect默认模型的内容是否应该在转发场景忽略true
spring.mvc.log-request-details请求明细的日志在DEBUG和TRACE级别是否允许false
spring.mvc.log-resolved-exception是否启用通过“HandlerExceptionResolver”解决的异常告警日志,除了“DefaultHandlerExceptionResolver”false
spring.mvc.message-codes-resolver-format用于消息编码的格式化策略。例如’PREFIX_ERROR_CODE’
spring.mvc.pathmatch.matching-strategy选择根据已注册映射匹配请求路径策略path-pattern-parser
spring.mvc.publish-request-handled-events是否在每一个请求的结束发布一个ServletRequestHandledEventtrue
spring.mvc.servlet.load-on-startup在启动时加载分发器servlet的优先级-1
spring.mvc.servlet.path分发器servlet路径。为这个属性设置一个自定义的值,与PathPatternParser匹配策略不兼容。/
spring.mvc.static-path-pattern用于静态资源的路径格式/**
spring.mvc.throw-exception-if-no-handler-found如果处理请求发现没有Handler,是否应该抛出一个"NoHandlerFoundException"false
spring.mvc.view.prefixSpring MVC视图前缀
spring.mvc.view.suffixSpring MVC视图后缀
spring.netty.leak-detection参考技术缓冲泄露检测级别simple
spring.servlet.multipart.enabled是否启用多部件上传支持true
spring.servlet.multipart.file-size-threshold写入磁盘文件的大小阈值0B
spring.servlet.multipart.location上传文件的中间位置
spring.servlet.multipart.max-file-size最大文件大小1MB
spring.servlet.multipart.max-request-size最大请求大小10MB
spring.servlet.multipart.resolve-lazily文件或者参数访问时是否延迟解析多部件请求false
spring.session.hazelcast.flush-mode会话刷新模式。决定会话修改被写入到会话存储的时机on-save
spring.session.hazelcast.map-name用于存储会话映射的名称spring:session:sessions
spring.session.hazelcast.save-mode会话保存模式。确定如何追踪会话修改并将其保存到会话存储区on-set-attribute
spring.session.jdbc.cleanup-cron用于过期的会话清除作业的计时任务表达式0 * * * * *
spring.session.jdbc.flush-mode会话刷新模式。确定会话修改写入到会话存储区的时机on-save
spring.session.jdbc.initialize-schema数据库模式初始化模式embedded
spring.session.jdbc.platform如果使用@@platform@@占位符,在初始化脚本中使用的平台。默认情况下自动检测
spring.session.jdbc.save-mode会话保存模式。确定如何追踪会话变更和保存到会话存储区on-set-attribute
spring.session.jdbc.schema初始化数据库模式所使用的SQL文件的路径classpath:org/springframework/session/jdbc/schema-@@platform@@.sql
spring.session.jdbc.table-name用于存储区会话的数据库表名称SPRING_SESSION
spring.session.mongodb.collection-name用于存储会话的集合名称sessions
spring.session.redis.cleanup-cron过期会话清除作业的计时任务表达式0 * * * * *
spring.session.redis.configure-action当没有用户定义的ConfigureRedisAction存在时,应用的配置操作notify-keyspace-events
spring.session.redis.flush-mode会话刷新模式。决定会话变更写入会话存储区的时机on-save
spring.session.redis.namespace用于存储会话的键命名空间spring:session
spring.session.redis.save-mode会话保存模式。确定如何追踪会话变更和保存到会话存储区on-set-attribute
spring.session.servlet.filter-dispatcher-types会话仓库过滤器分发器类型[async, error, request]
spring.session.servlet.filter-order会话存储过滤器排序
spring.session.timeout会话超时时间。如果时间后缀没有指定,将使用秒
spring.web.locale使用的位置。默认情况下,通过"Accept-Language"覆盖
spring.web.locale-resolver定义应该如何解析位置accept-header
spring.web.resources.add-mappings是否启用默认的资源处理true
spring.web.resources.cache.cachecontrol.cache-private表明响应信息用于单个用户并且不能通过共享的缓存存储
spring.web.resources.cache.cachecontrol.cache-public表明任何缓存可能存储响应
spring.web.resources.cache.cachecontrol.max-age响应应该被缓存的最大时间,如果没有时间后缀指定使用秒
spring.web.resources.cache.cachecontrol.must-revalidate表明一旦响应已经过时,缓存在没有使用服务器端重新校验时不能使用响应
spring.web.resources.cache.cachecontrol.no-cache表明只有当服务器重新校验响应,可以重用已缓存的响应
spring.web.resources.cache.cachecontrol.no-store表明任何情况下不缓存响应
spring.web.resources.cache.cachecontrol.no-transform表明中介机构不应该转换响应内容
spring.web.resources.cache.cachecontrol.proxy-revalidate与"must-revalidate"指令有相同的含义,除了它不应该到私有缓存
spring.web.resources.cache.cachecontrol.s-max-age共享缓存应该缓存响应的最大时间,如果没有时间后缀指定使用秒
spring.web.resources.cache.cachecontrol.stale-if-error当遭遇错误时使用响应的最大时间,如果没有时间后缀指定则使用秒
spring.web.resources.cache.cachecontrol.stale-while-revalidate响应过期之后可以提供响应的最大时间。如果时间后缀没有指定则使用秒
spring.web.resources.cache.period用于资源处理器提供的资源的缓存周期。如果时间后缀没有指定使用秒。可以通过’spring.web.resources.cache.cachecontrol’属性覆盖
spring.web.resources.cache.use-last-modified我们是否应该使用在HTTP缓存头数据文件的"lastModified"元数据true
spring.web.resources.chain.cache是否启用在资源链中的缓存true
spring.web.resources.chain.compressed是否启用已经压缩资源(gzip,brotli)的解决方案。查看’.gz’或者’.br’文件扩展名的资源名称false
spring.web.resources.chain.enabled是否启用Spring Resource Handling链。默认情况下禁用,除非已经启用了至少一个策略
spring.web.resources.chain.strategy.content.enabled是否启用内容版本策略false
spring.web.resources.chain.strategy.content.paths以逗号分隔的应用到内容版本策略格式列表[/**]
spring.web.resources.chain.strategy.fixed.enabled是否启用固定的版本策略false
spring.web.resources.chain.strategy.fixed.paths以逗号分隔的应用到固定版本策略格式列表[/**]
spring.web.resources.chain.strategy.fixed.version固定的版本策略使用的版本字符串
spring.web.resources.static-locations静态资源的位置。默认的是classpath:[/META-INF/resources/, /resources/, /static/, /public/].[classpath:/META-INF/resources/,,classpath:/resources/,classpath:/static/,classpath:/public/]
spring.webflux.base-path所有web处理器的基本路径
spring.webflux.format.date使用的日期格式,例如’dd/MM/yyyy’
spring.webflux.format.date-time使用的日期时间格式,例如’yyyy-MM-dd HH:mm:ss’
spring.webflux.format.time使用的时间格式,例如’HH:mm:ss’
spring.webflux.hiddenmethod.filter.enabled是否启用Spring的HiddenHttpMethodFilterfalse
spring.webflux.multipart.file-storage-directory用于存储大于’maxInMemorySize’的文件部分的目录。默认是一个系统临时目录创建名为’spring-multipart’的目录。当启用流时忽略
spring.webflux.multipart.headers-charset用于解码头数据的字符集UTF-8
spring.webflux.multipart.max-disk-usage-per-part允许每个部分允许的最大磁盘空间量。默认是-1,强制没有限制。当启用流时忽略-1B
spring.webflux.multipart.max-headers-size允许每一个部分的每个头数据部分最大内存量。设置为-1则强制没有限制10KB
spring.webflux.multipart.max-in-memory-size在写入磁盘之前允许每个部分内存的最大量。设置为-1则在内存中存储所有内容。当启用流时忽略256KB
spring.webflux.multipart.max-parts允许在给定的多部分请求部分的最大量,默认为-1则强制无限制-1
spring.webflux.multipart.streaming是否直接从解析的输入缓冲区进行流处理,而不存储在内存或者文件中。默认不进行流处理false
spring.webflux.session.timeout30m
spring.webflux.static-path-pattern用于静态资源的路径格式/**
.A.10. 模板属性
名称描述默认值
spring.freemarker.allow-request-overrideHttpServletRequest参数是否允许覆盖(隐藏)controller生成的相同名称的模型属性false
spring.freemarker.allow-session-overrideHttpSession参数是否允许覆盖(隐藏)controller生成的相同名称的模型属性false
spring.freemarker.cache是否启用模板缓存false
spring.freemarker.charset模板编码UTF-8
spring.freemarker.check-template-location是否检查模板位置是否存在true
spring.freemarker.content-typecontent-type值text/html
spring.freemarker.enabled是否启用此技术的MVC视图解决方案true
spring.freemarker.expose-request-attributes是否在与模板合并之前将所有请求属性添加到模型中false
spring.freemarker.expose-session-attributes是否在与模板合并之前将所有HttpSession属性添加到模型中false
spring.freemarker.expose-spring-macro-helpers是否暴露RequestContext为Spring 的macor类库使用,命名为"springMacroRequestContext"true
spring.freemarker.prefer-file-system-access是否优先考虑文件系统访问模板加载来启用模板变更的热检测。当一个模板路径作为目录检测时,模板只从目录加载并且其他的匹配类路径位置将不考虑。false
spring.freemarker.prefix当构建一个URL时,在视图名称前面追加的前缀
spring.freemarker.request-context-attribute所有视图的RequestContext属性的名称
spring.freemarker.settings.*众所周知的FreeMarker键,被传入到FreeMarker的配置
spring.freemarker.suffix当构建一个URL时在视图名称追加的后缀.ftlh
spring.freemarker.template-loader-path以逗号分隔的模板路径列表[classpath:/templates/]
spring.freemarker.view-names可以解析的视图名称
spring.groovy.template.allow-request-overrideHttpServletRquest属性是否允许覆盖(隐藏)controller生成相同的名称的模型属性false
spring.groovy.template.allow-session-overrideHttpSession属性是否允许覆盖(隐藏)controller生成相同的名称的模型属性false
spring.groovy.template.cache是否启用模板缓存false
spring.groovy.template.charset模板编码UTF-8
spring.groovy.template.check-template-location是否检查模板位置是否存在true
spring.groovy.template.configuration.auto-escape spring.groovy.template.configuration.auto-indent spring.groovy.template.configuration.auto-indent-string spring.groovy.template.configuration.auto-new-line spring.groovy.template.configuration.base-template-class spring.groovy.template.configuration.cache-templates spring.groovy.template.configuration.declaration-encoding spring.groovy.template.configuration.expand-empty-elements spring.groovy.template.configuration.locale spring.groovy.template.configuration.new-line-string spring.groovy.template.configuration.resource-loader-path spring.groovy.template.configuration.use-double-quotes 查看GroovyMarkupConfigurer
spring.groovy.template.content-typeContent-Type值text/html
spring.groovy.template.enabled是否启用此技术的MVC视图解决方案true
spring.groovy.template.expose-request-attributes是否所有请求属性在合并模板之前添加到模型false
spring.groovy.template.expose-session-attributes是否所有HttpSession属性在合并模板之前添加到模型false
spring.groovy.template.expose-spring-macro-helpers是否暴露一个RequestContext供Spring的macro类库使用,命名"springMacroRequestContext"true
spring.groovy.template.prefix当构建一个URL时拼接在视图名称前缀
spring.groovy.template.request-context-attribute所有视图的RequestContext属性的名称
spring.groovy.template.resource-loader-path模板路径classpath:/templates/
spring.groovy.template.suffix当构建一个URL时拼接在视图名称的后缀.tpl
spring.groovy.template.view-names可以解析的视图名称
spring.mustache.charset模板编码UTF-8
spring.mustache.check-template-location是否检查模板位置是否存在true`
spring.mustache.enabled是否为Mustache启用MVC视图解决方案true
spring.mustache.prefix应用到模板名称的前缀classpath:/templates/
spring.mustache.reactive.media-typesMustache视图支持的媒体类型text/html;charset=UTF-8
spring.mustache.request-context-attribute所有视图的RequestContext属性的名称
spring.mustache.servlet.allow-request-override是否允许HttpServletRequest覆盖(隐藏)controlle生成相同名称的模型属性false
spring.mustache.servlet.allow-session-override是否允许HttpSession覆盖(隐藏)controlle生成相同名称的模型属性false
spring.mustache.servlet.cache是否启用模板缓存false
spring.mustache.servlet.content-typeContent-Type值
spring.mustache.servlet.expose-request-attributes是否所有请求属性在合并到模板之前应该添加到模型false
spring.mustache.servlet.expose-session-attributes是否所有HttpSession属性在合并到模板之前应该添加到模型false
spring.mustache.servlet.expose-spring-macro-helpers是否暴露一个RequestContext供Spring macro类库使用,命名"springMacroRequestContext"true
spring.mustache.suffix应用到模板名称的前缀.mustache
spring.mustache.view-names可以解析的视图名称
spring.thymeleaf.cache是否启用模板缓存true
spring.thymeleaf.check-template在渲染它之前,是否检查模板是否存在true
spring.thymeleaf.check-template-location是否检查模板位置是否存在true
spring.thymeleaf.enable-spring-el-compiler在SpringEL表达式中启用SpringEL编译器false
spring.thymeleaf.enabled是否为Web框架启用Thymeleaf视图解决方式true
spring.thymeleaf.encoding模板文件编码UTF-8
spring.thymeleaf.excluded-view-names从解决方案中排除的以逗号分隔视图名称列表(格式允许的)
spring.thymeleaf.mode应用到模板的模板模式。也看查看Thymeleaf的TemplateMode枚举HTML
spring.thymeleaf.prefix当构建一个URL时,拼接在视图名称的前缀classpath:/templates/
spring.thymeleaf.reactive.chunked-mode-view-names当设置最大的数据块大小时,以逗号分隔的视图名称的列表(格式允许)应该是CHUNKED模式下的唯一执行的视图名称
spring.thymeleaf.reactive.full-mode-view-names即使设置最大的数据块大小,以逗号分隔的视图名称的列表(格式允许)应该在CHUNKED模式下执行
spring.thymeleaf.reactive.max-chunk-size最大数据缓冲大小用于写入到响应。如果此属性被设置,默认情况下载CHUNKED模式执行模板0B
spring.thymeleaf.reactive.media-types视图技术支持的媒体类型[text/html,application/xhtml+xml,application/xml,text/xml,application/rss+xml,application/atom+xml,application/javascript,application/ecmascript,text/javascript,text/ecmascript,application/json,text/css, text/plain,text/event-stream
spring.thymeleaf.render-hidden-markers-before-checkboxes作为复选框标记的隐藏表单输入框是否应该在复选框元素本身之前呈现。false
spring.thymeleaf.servlet.content-type写入到HTTP响应的Content-Typetext/html
spring.thymeleaf.servlet.produce-partial-output-while-processingThymeleaf应该尽快开始写部分输出还是缓冲区直到模板处理结束true
spring.thymeleaf.suffix当构建一个URL时,拼接在视图名称的后缀.html
spring.thymeleaf.template-resolver-order在链中模板解析器的顺序。默认情况下,在链中模板解析器是优先的。顺序从1开始,如果你已经定义额外的"TemplateResolver"bean应该设置它
spring.thymeleaf.view-names以逗号分隔的可以解析的视图名称列表(格式允许的)
.A.11. 服务器属性
名称描述默认值
server.address服务器应该绑定的网络地址
server.compression.enabled是否启用响应压缩false
server.compression.excluded-user-agents以逗号分隔的用于不会压缩响应的用户代理列表
server.compression.mime-types以逗号分隔的应该压缩的MIME类型[text/html, text/xml, text/plain, text/css, text/javascript, application/javascript, application/json, application/xml]
server.compression.min-response-size执行压缩所需要的最小的"Content-Length"值2KB
server.error.include-binding-errors何时包含"error"属性never
server.error.include-exception包含“异常”属性false
server.error.include-message何时包含“message”属性never
server.error.include-stacktrace何时包含“trace”属性never
server.error.path错误控制器的路径/error
server.error.whitelabel.enabled当服务器发生错误时,是否启用在浏览器显示的默认的错误页面true
server.forward-headers-strategy处理 X-Forwarded-*头数据的策略
server.http2.enabled是否启用HTTP/2支持,如果当前环境支持它false
server.jetty.accesslog.append添加到日志中false
server.jetty.accesslog.custom-format自定义日志格式,请查看org.eclipse.jetty.server.CustomRequestLog。如果已定义,覆盖"format"配置键
server.jetty.accesslog.enabled启用访问日志false
server.jetty.accesslog.file-date-format放到日志文件名称的日期格式
server.jetty.accesslog.filename日志文件名称。如果没有指定,日志重定向到"System.err"
server.jetty.accesslog.format日志格式ncsa
server.jetty.accesslog.ignore-paths不应该记录的请求路径
server.jetty.accesslog.retention-period删除日志文件之前的天数31
server.jetty.connection-idle-timeout在连接关闭之前它保持空闲的时间
server.jetty.max-http-form-post-size最大的在任何HTTP post请求中表单内容的大小200000B
server.jetty.threads.acceptors要使用的接收器线程大小。当值为-1时,默认情况,接收器的数量来自操作环境-1
server.jetty.threads.idle-timeout线程空闲最大时间60000ms
server.jetty.threads.max线程的最大数量200
server.jetty.threads.max-queue-capacity默认值是根据线程配置计算的。
server.jetty.threads.min线程的最小数量8
server.jetty.threads.selectors要使用的选择器线程的数量。当值为-1时,默认的选择器数量来自操作环境。-1
server.max-http-header-size最大的HTTP消息头数据的大小8KB
server.netty.connection-timeoutNetty频道的链接超时时间
server.netty.h2c-max-content-lengthH2C升级请求的最大内容长度0B
server.netty.idle-timeoutNetty通道的空闲超时时间。当没有指定时,使用无限超时时间
server.netty.initial-buffer-sizeHTTP请求解码的初始缓冲大小128B
server.netty.max-chunk-size可为HTTP请求解码的数据块的最大大小。8KB
server.netty.max-initial-line-length可为HTTP请求的初始的行解码的最大长度4KB
server.netty.max-keep-alive-requests每个连接发出请求 的最大值。默认情况下,一个请求提供无限制的请求数
server.netty.validate-headers当解码请求时是否校验头数据true
server.port服务器HTTP端口8080
server.reactive.session.timeout会话超时时间。如果时间后缀没有指定,将使用秒30m
server.server-header用于服务器响应头数据的值(如果为空,不发送头数据)
server.servlet.application-display-name展示应用程序名称application
server.servlet.context-parameters.*servlet上下文初始化参数
server.servlet.context-path应用程序上下文路径
server.servlet.encoding.charset
server.servlet.encoding.enabled是否启用http编码支持true
server.servlet.encoding.force
server.servlet.encoding.force-request
server.servlet.encoding.force-response
server.servlet.encoding.mapping.*
server.servlet.jsp.class-name为JSP所使用的servlet的类名称。如果注册的是true并且这个类在类路径中,他将被注册org.apache.jasper.servlet.JspServlet
server.servlet.jsp.init-parameters.*用于配置JSPservlet的初始化参数
server.servlet.jsp.registeredJSP servlet是否被注册true
server.servlet.register-default-servlet是否使用容器注册默认的Servletfalse
server.servlet.session.cookie.comment
server.servlet.session.cookie.domain
server.servlet.session.cookie.http-only
server.servlet.session.cookie.max-age
server.servlet.session.cookie.name
server.servlet.session.cookie.path
server.servlet.session.cookie.same-site
server.servlet.session.cookie.secure
server.servlet.session.persistent在重启之间是否持久化session数据false
server.servlet.session.store-dir用于存储session数据的目录
server.servlet.session.timeoutsession超时时间。如果时间后缀没有指定,将用秒30m
server.servlet.session.tracking-modessession追踪模式
server.shutdown服务器支持的停机方式immediate
server.ssl.certificatePEM编码SSL认证文件位置
server.ssl.certificate-private-key为SSL证书PEM编码私钥的路径
server.ssl.ciphers支持的SSL暗号
server.ssl.client-auth客户端身份认证模式。需要信任的存储区
server.ssl.enabled是否启用SSL支持true
server.ssl.enabled-protocols启用SSL协议
server.ssl.key-alias在秘钥存储区识别秘钥的别名
server.ssl.key-password用于访问秘钥库的秘钥的密码
server.ssl.key-store持有SSL认证(通常是jks文件)的秘钥存储路径
server.ssl.key-store-password用于访问秘钥存储区的密码
server.ssl.key-store-provider秘钥存储的提供者
server.ssl.key-store-type秘钥存储的类型
server.ssl.protocol使用的SSL协议TLS
server.ssl.trust-certificatePEM编码的认证授权文件的路径
server.ssl.trust-certificate-private-keySSL认证授权的PEM编码私钥文件路径
server.ssl.trust-store持有SSL认证的信任存储库
server.ssl.trust-store-password用于访问信任存储库的密码
server.ssl.trust-store-provider信任存储库的提供者
server.ssl.trust-store-type信任存储库的类型
server.tomcat.accept-count当所有可能的请求出过线程在使用时,进入连接请求的最大队列长度100
server.tomcat.accesslog.buffered是否缓冲输出,以便定期刷新输出true
server.tomcat.accesslog.check-exists是否检查日志文件存在,以便如果一个外部的进程已经重命名它,可以重建它false
server.tomcat.accesslog.condition-if是否只有"ServletRequest.getAttribute(conditionIf)"不产生null时,请求的日志将被启用
server.tomcat.accesslog.condition-unless是否只有"ServletRequest.getAttribute(conditionIf)"产生null时,请求的日志将被启用
server.tomcat.accesslog.directory创建日志文件的目录。可以相对或者绝对与Tomcat根路径logs
server.tomcat.accesslog.enabled启用访问日志false
server.tomcat.accesslog.encoding用于日志文件的字符集。默认为系统默认的字符集
server.tomcat.accesslog.file-date-format存在在日志文件名称的日期格式.yyyy-MM-dd
server.tomcat.accesslog.ipv6-canonical是否使用RFC 5952定义的IPv6权威表示格式。false
server.tomcat.accesslog.locale用于在日志记录中和日志文件名称后缀格式化时间戳的区域。默认是Java进程的默认区域
server.tomcat.accesslog.max-days在移除日志文件之前,保留访问日志文件的天数-1
server.tomcat.accesslog.pattern访问日志的格式模式common
server.tomcat.accesslog.prefix日志文件名称前缀access_log
server.tomcat.accesslog.rename-on-rotate是否推迟在文件名称中包含日期戳,除非循环时间false
server.tomcat.accesslog.request-attributes-enabled对IP地址,主机名称,协议和端口设置请求参数用于请求false
server.tomcat.accesslog.rotate是否启用访问日志循环true
server.tomcat.accesslog.suffix日志文件后缀.log
server.tomcat.additional-tld-skip-patterns以逗号分隔的额外模式列表。这些模式与jar匹配,以便在扫描TLD时忽略。特殊的’?’ 和 '*'字符可以在模式中使用来分别匹配一个且只能匹配一个以及零或者更多字符
server.tomcat.background-processor-delay后端进行方法调用之间的延迟。如果时间后缀没有指定,将使用秒10s
server.tomcat.basedirTomcat基本路径。如果没有指定,使用临时目录
server.tomcat.connection-timeout接收一个连接之后,连接等待请求URL出现的时间量
server.tomcat.keep-alive-timeout在连接关闭之前,等待另一个HTTP请求的时间。当没有设置使用connectionTimeout。当设置为-1时,没有时间限制
server.tomcat.max-connections在任意给定的时间内服务器接收和处理连接的最大值。只有限制已经到达,操作系统可以基于"acceptCount`"仍接收连接8192
server.tomcat.max-http-form-post-size在任何HTTP POST请求的表单内容的最大大小2MB
server.tomcat.max-keep-alive-requests在连接被关闭之前,可以流水线处理的HTTP请求的最大值。当设置为0或者1时,keep-alive和流水线被禁用。当设置为-1时,不限制管道处理数量或者允许keep-alive请求100
server.tomcat.max-swallow-size请求体的吞吐最大量2MB
server.tomcat.mbeanregistry.enabledTomcat的MBean注册表是否应该启用false
server.tomcat.processor-cache在缓存中保留和随后请求重用的空闲处理器的最大值。当设置为-1时,缓存使用理论上最大大小无限制等于连接的最大大小。200
server.tomcat.redirect-context-root是否应该通过拼接一个/到路径来重定向根上下文请求。当在一个代理终止使用SSL,这个属性应该设置为falsetrue
server.tomcat.reject-illegal-header是否拒绝非法头数据名称和值的请求true
server.tomcat.relaxed-path-chars以逗号分隔的允许在URI路径中额外未编码的字符列表。只允许"< > [ \ ] ^ ` {}"
server.tomcat.relaxed-query-chars以逗号分隔的允许在URI查询字符串中额外未编码的字符列表。只允许"< > [ \ ] ^ ` {}"
server.tomcat.remoteip.host-header从远程主机提取的HTTP头数据名称X-Forwarded-Host
server.tomcat.remoteip.internal-proxies匹配要授信的代理的规则表达式`10\.\d{1,3}\.\d{1,3}\.\d{1,3}
server.tomcat.remoteip.port-headerHTTP头数据名称,用于覆盖原始端口值X-Forwarded-Port
server.tomcat.remoteip.protocol-header持有输入协议的头数据,通常命名为"X-Forwarded-Proto"X-Forwarded-Port
server.tomcat.remoteip.protocol-header-https-value协议头数据的值表明进入的请求是否是否SSLhttps
server.tomcat.remoteip.remote-ip-header要从远程IP提取的HTTP头数据名称。例如’X-Forwarded-FOR’。
server.tomcat.resource.allow-caching对于web应用程序是否允许静态资源缓true
server.tomcat.resource.cache-ttl静态资源缓存活跃时间
server.tomcat.threads.max工作线程的最大数200
server.tomcat.threads.min-spare工作线程的最小数10
server.tomcat.uri-encoding用于解码URI的字符编码UTF-8
server.tomcat.use-relative-redirects通过调用sendRedirect生成的HTTP 1.1和后期版本位置头数据是否将使用相对或者绝对重定向。false
server.undertow.accesslog.dirUndertow访问日志目录
server.undertow.accesslog.enabled是否启用访问日志false
server.undertow.accesslog.pattern访问日志的格式化模式common
server.undertow.accesslog.prefix日志文件名称前缀access_log.
server.undertow.accesslog.rotate是否启用访问日志循环true
server.undertow.accesslog.suffix日志文件名称后缀log
server.undertow.allow-encoded-slash服务器是否应该解码已编码的斜杠字符的百分比。由于不同的服务器对斜杠的解释不同,启用编码斜杠可能会带来安全问题。如果你有一个需要它的遗留应用程序才启用它。false
server.undertow.always-set-keep-alive'Connection:keep-alive’头数据是否应该添加到所有响应中,即使HTTP规范没有要求true
server.undertow.buffer-size每一个缓冲区的大小。默认值来源于JVM可用内存的最大值
server.undertow.decode-url是否应该解码URL。当禁用时,百分比编码字符在URL中将保持不变true
server.undertow.direct-buffers是否在Java堆外分配缓存。默认值来源JVM可用内存的最大值
server.undertow.eager-filter-initservlet过滤器是否应该在启动时初始化true
server.undertow.max-cookies允许cookies的最大值。这个限制的存在是为了防止基于HASH冲突的DOS攻击。200
server.undertow.max-headers允许头数据的最大值。这个限制的存在是防止基于哈希冲突的DOS攻击
server.undertow.max-http-post-sizeHTTP post内容的最大大小当值默认位置-1时,默认情况下,大小是无限制的-1B
server.undertow.max-parameters允许最大查询或者路径参数个数。这个限制存在防止基于Hash冲突的DOS攻击
server.undertow.no-request-timeout在被服务器关闭连接之间。连接可以在没有处理请求的情况下保持空闲状态的时长
server.undertow.options.server.*
server.undertow.options.socket.*
server.undertow.preserve-path-on-forward是否保留转发请求的路径false
server.undertow.threads.io创建工作者的I/O线程的数量。默认值来源于可以处理器的个数
server.undertow.threads.worker工作者线程的个数。默认值是I/O线程数的8倍
server.undertow.url-charset用于解码URL的字符集UTF-8
.A.12. 安全属性
名称描述默认值
spring.security.filter.dispatcher-types安全过滤器链分发器类型[async, error, request]
spring.security.filter.order安全过滤器链顺序-100
spring.security.oauth2.client.provider.*OAuth提供者明细
spring.security.oauth2.client.registration.*OAuth提供者注册
spring.security.oauth2.resourceserver.jwt.audiences标识JWT目标接收方
spring.security.oauth2.resourceserver.jwt.issuer-uri可以成为OpenID Connect发现端点或者RFC 8414定义的OAuth 2.0 Authorization Server Metadata端点
spring.security.oauth2.resourceserver.jwt.jwk-set-uri用于校验JWT令牌的JSON Web Key URI
spring.security.oauth2.resourceserver.jwt.jws-algorithms用于校验数字签名的JSON Web AlgorithmsRS256
spring.security.oauth2.resourceserver.jwt.public-key-location包含适用于校验JWT公钥的文件的位置
spring.security.oauth2.resourceserver.opaquetoken.client-id用于使用令牌内省端点身份认证的客户端机密
spring.security.oauth2.resourceserver.opaquetoken.introspection-uriOAuth 2.0端点,通过它实现令牌内省
spring.security.saml2.relyingparty.registration.*SAML2 依赖参与者注册
spring.security.user.name默认用户名称user
spring.security.user.password默认用户名称的密码
spring.security.user.roles默认用户名称的授予的角色
.A.13. RSocket属性
名称描述默认值
spring.rsocket.server.address服务器绑定的网络地址
spring.rsocket.server.fragment-size最大传输单位。大于指定值的帧被分片
spring.rsocket.server.mapping-pathRSocket处理请求的路径(只与websocket传输工作)
spring.rsocket.server.port服务器端口
spring.rsocket.server.ssl.certificate
spring.rsocket.server.ssl.certificate-private-key
spring.rsocket.server.ssl.ciphers
spring.rsocket.server.ssl.client-auth
spring.rsocket.server.ssl.enabled
spring.rsocket.server.ssl.enabled-protocols
spring.rsocket.server.ssl.key-alias
spring.rsocket.server.ssl.key-password
spring.rsocket.server.ssl.key-store
spring.rsocket.server.ssl.key-store-password
spring.rsocket.server.ssl.key-store-provider
spring.rsocket.server.ssl.key-store-type
spring.rsocket.server.ssl.protocol
spring.rsocket.server.ssl.trust-certificate
spring.rsocket.server.ssl.trust-certificate-private-key
spring.rsocket.server.ssl.trust-store
spring.rsocket.server.ssl.trust-store-password
spring.rsocket.server.ssl.trust-store-provider
spring.rsocket.server.ssl.trust-store-type
spring.rsocket.server.transportRSocket传输协议tcp
.A.14. Actuator属性
名称描述默认值
management.appoptics.metrics.export.api-tokenAppOptics API令牌
management.appoptics.metrics.export.batch-size用于后端的每个请求的测量值大小。如果发现更多测量值,将发出多个请求500
management.appoptics.metrics.export.connect-timeout请求到后端的链接超时时间5s
management.appoptics.metrics.export.enabled是否启用后端指标导出true
management.appoptics.metrics.export.floor-times是否发出固定时间,当从多个主机发送测量值在给定的时间边界上对齐他们是有用的。false
management.appoptics.metrics.export.host-tag当发出指标到AppOptics时将映射到“@host”的标签instance
management.appoptics.metrics.export.read-timeout请求到后端的读超时时间10s
management.appoptics.metrics.export.step要使用的步大小 (也就是报告频率)1m
management.appoptics.metrics.export.uri运送指标的URLhttps://api.appoptics.com/v1/measurements
management.atlas.metrics.export.batch-size用于后端的每个请求测量值的个数。如果发现更多测量值,将发出多个请求。10000
management.atlas.metrics.export.config-refresh-frequency从LWC服务刷新配置设置的频率10s
management.atlas.metrics.export.config-time-to-live从LWC服务订阅的存活时间150s
management.atlas.metrics.export.config-uri用于Atlas LWC端点的URI用于检索当前订阅http://localhost:7101/lwc/api/v1/expressions/local-dev
management.atlas.metrics.export.connect-timeout请求到后端的链接超时时间1s
management.atlas.metrics.export.enabled是否启用将此指标导出到后端true
management.atlas.metrics.export.eval-uriAtlas LWC端点的URI用于评估订阅数据http://localhost:7101/lwc/api/v1/evaluate
management.atlas.metrics.export.lwc-enabled是否启用Atlas LWC流false
management.atlas.metrics.export.meter-time-to-live这段时间之后,测量仪器将考虑过期并不会产生报告。15m
management.atlas.metrics.export.num-threads与指标发布调度器一起使用的线程数4
management.atlas.metrics.export.read-timeout请求到后端的读超时时间10s
management.atlas.metrics.export.step使用的步大小(也就是报告频率)1m
management.atlas.metrics.export.uriAtlas服务器的URI。http://localhost:7101/api/v1/publish
management.auditevents.enabled是否启用审核事件存储true
management.cloudfoundry.enabled是否启用扩展的Cloud Foundry actuator端点true
management.cloudfoundry.skip-ssl-validation是否启用扩展的Cloud Foundry actuator端点false
management.datadog.metrics.export.api-keyDatalog API 键
management.datadog.metrics.export.application-keyDatalog应用程序key. 没有严格要求,但是通过向Datalog发送仪器描述,类型,基本单元来改善Datalog体验
management.datadog.metrics.export.batch-size用于后端的每一个请求的测量值个数。如果发现更多测量值则发出多个请求10000
management.datadog.metrics.export.connect-timeout后端请求的链接超时时间1s
management.datadog.metrics.export.descriptions是否发布描述元数据到Datalog.关闭推送将发送元数据数量降低最小限度true
management.datadog.metrics.export.enabled是否启用将指标导出到后端true
management.datadog.metrics.export.host-tag当指标流向Datalog时将映射到“host”的标签instance
management.datadog.metrics.export.read-timeout后端请求的读超时时间10s
management.datadog.metrics.export.step使用的步大小(也就是报告频率)1m
management.datadog.metrics.export.uri运送指标到的URI。如果你需要发布指标到US以外的Datalog 站点或者发送到Datalog途中的内部代理,请设置此选项。https://api.datadoghq.com
management.defaults.metrics.export.enabled是否启用默认的指标导出器true
management.dynatrace.metrics.export.api-tokenDynatrace身份认证令牌
management.dynatrace.metrics.export.batch-size用于后端的每个请求测量值的个数。如果发现更多的测量值,然后发出多个请求10000
management.dynatrace.metrics.export.connect-timeout请求到后端的链接超时时间1s
management.dynatrace.metrics.export.enabled是否启用指标导出到后端true
management.dynatrace.metrics.export.read-timeout请求到后端的超时时间10s
management.dynatrace.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.dynatrace.metrics.export.uri输送指标的URI。可以用于SaaS,自管理实例或者通过内部代理路由
management.dynatrace.metrics.export.v1.device-id导出指标到Dynatrace的自定义设备ID
management.dynatrace.metrics.export.v1.group用于导出的指标的组。用于在Dynatrace UI指定自定义设置组名称
management.dynatrace.metrics.export.v1.technology-type导出指标的技术类型。用于在Dynatrace UI中以逻辑技术名称分组指标java
management.dynatrace.metrics.export.v2.default-dimensions.*默认维度。将其添加到在key-value对的表单中所有指标
management.dynatrace.metrics.export.v2.enrich-with-dynatrace-metadata是否启用Dynatrace元数据导出true
management.dynatrace.metrics.export.v2.metric-key-prefix添加到所有导出的指标的前缀字符串
management.dynatrace.metrics.export.v2.use-dynatrace-summary-instrumentsTimer和DistributionSummary是否退到内建的micrometer设备true
management.elastic.metrics.export.api-key-credentialsBase64-编码的认证字符串。与user-name和密码互斥
management.elastic.metrics.export.auto-create-index如果索引不存在是否自动化创建索引true
management.elastic.metrics.export.batch-size用于此后端每个请求测量值的数量。如果发现更多的测量值,将发出多个请求。10000
management.elastic.metrics.export.connect-timeout请求后端的连接超时时间1s
management.elastic.metrics.export.enabled是否启用指标导出到后端true
management.elastic.metrics.export.host导出指标的主机http://localhost:9200
management.elastic.metrics.export.index导出指标的索引micrometer-metrics
management.elastic.metrics.export.index-date-format用于滚动索引的索引日期格式yyyy-MM
management.elastic.metrics.export.index-date-separator用于滚动索引中拆分索引名称和日期格式的前缀-
management.elastic.metrics.export.passwordElastic服务器登陆密码。与api-key-credenttials互斥
management.elastic.metrics.export.pipeline管道名称。默认情况下,事件没有预处理
management.elastic.metrics.export.read-timeout请求到后端的读超时10s
management.elastic.metrics.export.step使用的步长(也就是报告频率)1m
management.elastic.metrics.export.timestamp-field-name时间戳字段的名称@timestamp
management.elastic.metrics.export.user-nameElastic服务器的登陆用户名。与api-key-credentials互斥
management.endpoint.auditevents.cache.time-to-live缓存响应的最长时间0ms
management.endpoint.auditevents.enabled是否启用审核事件端点true
management.endpoint.beans.cache.time-to-live缓存响应的最长时间0ms
management.endpoint.beans.enabled是否启用bean端点true
management.endpoint.caches.cache.time-to-live缓存响应的最长时间0ms
management.endpoint.caches.enabled是否启用缓存端点true
management.endpoint.conditions.cache.time-to-live缓存响应的最长时间0ms
management.endpoint.conditions.enabled是否启用条件端点true
management.endpoint.configprops.additional-keys-to-sanitize除了已经配置的这些,应该清楚这些key。key可以是属性结尾的简单的字符串或者正则表达式
management.endpoint.configprops.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.configprops.enabled是否启用配置属性端点true
management.endpoint.configprops.keys-to-sanitize应该被清除的key。key可以是属性结尾的简单字符串或者正则表达式[password, secret, key, token, .*credentials.*, vcap_services, sun.java.command]
management.endpoint.env.additional-keys-to-sanitize除了已经配置的这些,应该清楚这些key。key可以是属性结尾的简单的字符串或者正则表达式
management.endpoint.env.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.env.enabled是否启用环境端点true
management.endpoint.env.keys-to-sanitize应该被清除的key。key可以是属性结尾的简单字符串或者正则表达式[password, secret, key, token, .*credentials.*, vcap_services, sun.java.command]
management.endpoint.flyway.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.flyway.enabled是否启用flyway端点true
management.endpoint.health.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.health.enabled是否启用health 端点true
management.endpoint.health.group.*监控状态端点组
management.endpoint.health.logging.slow-indicator-threshold阈值,在此阈值后将记录运行状态缓慢指示器的警告10s
management.endpoint.health.probes.add-additional-paths是否使在主服务器端口活动和就绪状态健康组可用。false
management.endpoint.health.probes.enabled是否启用活动和就绪探针false
management.endpoint.health.roles用于确定一个用户被授权展示明细的角色。当空时,所有的身份认证的用户被授权
management.endpoint.health.show-components何时展示组件。如果没有指定此属性,将使用’show-detail’设置
management.endpoint.health.show-details展示全量健康状态明细的时机never
management.endpoint.health.status.http-mapping.*HTTP状态码的健康状态映射。默认情况下,注册的健康状态映射合理的默认值(例如,UP映射200)
management.endpoint.health.status.order以逗号分隔的按照严重顺序的健康状态列表[DOWN, OUT_OF_SERVICE, UP, UNKNOWN]
management.endpoint.heapdump.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.heapdump.enabled是否启用heapdump端点true
management.endpoint.httptrace.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.httptrace.enabled是否启用httptrace端点true
management.endpoint.info.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.info.enabled是否启用info端点true
management.endpoint.integrationgraph.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.integrationgraph.enabled是否启用integrationgraph端点true
management.endpoint.liquibase.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.liquibase.enabled是否启用liquibase端点true
management.endpoint.logfile.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.logfile.enabled是否启用logfile端点true
management.endpoint.logfile.external-file要访问的外部化日志文件。如果日志文件通过直接输出书写,而不是通过日志系统本身书写可以使用它。
management.endpoint.loggers.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.loggers.enabled是否启用logger端点true
management.endpoint.mappings.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.mappings.enabled是否启用mappings端点true
management.endpoint.metrics.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.metrics.enabled是否启用metrics端点true
management.endpoint.prometheus.enabled是否启用prometheus端点true
management.endpoint.quartz.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.quartz.enabled是否启用quartz端点true
management.endpoint.scheduledtasks.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.scheduledtasks.enabled是否启用scheduledtasks端点true
management.endpoint.sessions.enabled是否启用sessions端点true
management.endpoint.shutdown.enabled是否启用shutdown端点false
management.endpoint.startup.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.startup.enabled是否启用startup端点true
management.endpoint.threaddump.cache.time-to-live缓存响应的最大时间0ms
management.endpoint.threaddump.enabled是否启用threaddump端点true
management.endpoints.enabled-by-default默认情况下是否启用或者禁用所有端点true
management.endpoints.jmx.domain端点JXM域名称。如果设置则回退到’spring.jmx.default-domain’org.springframework.boot
management.endpoints.jmx.exposure.exclude应该排除的端点ID或者’*'表示全部
management.endpoints.jmx.exposure.include应该包含的端点ID或者’*'表示全部
management.endpoints.jmx.static-names附加到表示端点的所有的MBean的ObjectNames的额外的静态属性
management.endpoints.migrate-legacy-ids是否透明地迁移遗留的端点IDfalse
management.endpoints.web.base-pathweb端点的基本路径。当管理服务器共享主要的服务器端口,相对于servlet上下文路径(server.servlet.context-path)或者WebFlux基本路径(spring.webflux.bast-path)。当单独的管理服务器端口已经配置,则相对于管理服务器的基本路径(management.server.base-path)和单独管理服务器(management.server.port)端口。/actuator
management.endpoints.web.cors.allow-credentials是否支持凭证。如果没有设置,则不支持凭证
management.endpoints.web.cors.allowed-headers在一个请求中允许的以逗号分隔的头数据列表。'*'允许所有头数据
management.endpoints.web.cors.allowed-methods允许的以逗号分隔的方法列表。'*'允许所有方法。当没有设置时,默认为GET
management.endpoints.web.cors.allowed-origin-patterns允许的以逗号分隔的原始模式列表。与只支持’'的允许原始模式不同,原始模式更灵活(例如,'http://.example.com’)而且当凭证被允许时,可以使用它。当没有设置允许源模式或者允许的源时,禁用CORS支持
management.endpoints.web.cors.allowed-origins以逗号分隔的允许的源列表。'‘允许所有源。当凭证被允许时,’'不能被使用并且源模式应该被配置。当没有设置允许源或者允许的源,禁用CORS支持
management.endpoints.web.cors.exposed-headers在响应中包含的以逗号分隔的头数据列表
management.endpoints.web.cors.max-age来自预检请求的响应可以被客户端缓存多长时间。如果时间后缀没有指定,将使用秒1800s
management.endpoints.web.discovery.enabled是否启用发现页true
management.endpoints.web.exposure.exclude应该被排除的端点ID。或者’*'表示所有
management.endpoints.web.exposure.include应该被包含的端点ID。或者’*'表示所有[health]
management.endpoints.web.path-mapping.*端点ID之间的映射和应该暴露他们的映射
management.ganglia.metrics.export.addressing-modeUDP地址模式,或者unicast或者multicastmulticast
management.ganglia.metrics.export.duration-units用于报告时间的基本时间单元milliseconds
management.ganglia.metrics.export.enabled是否启用将指标导出到Gangliatrue
management.ganglia.metrics.export.host接收导出的指标的Ganglia服务器主机localhost
management.ganglia.metrics.export.port接收导出的指标的Ganglia服务器端口8649
management.ganglia.metrics.export.rate-unitsseconds
management.ganglia.metrics.export.step使用的步长(也就是报告频率)1m
management.ganglia.metrics.export.time-to-live在Ganglia指标的存活时间。设置多播Time-To-Live比主机间路由数大于11
management.graphite.metrics.export.duration-units用于报告时间的基本时间单元milliseconds
management.graphite.metrics.export.enabled是否启用将指标导出到Graphitetrue
management.graphite.metrics.export.graphite-tags-enabled是否使用Graphite标签,而不是分隔命名约定。默认启动,除非设置了"tagsAsPrefix"
management.graphite.metrics.export.host接收导出的指标的Graphite服务器主机localhost
management.graphite.metrics.export.port接收导出的指标的Graphite服务器端口2004
management.graphite.metrics.export.protocol当运送数据到Graphite使用的协议pickled
management.graphite.metrics.export.rate-units用于报告速率的基本时间单元seconds
management.graphite.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.graphite.metrics.export.tags-as-prefix用于分层命名约定,转变特定的标签key到指标前缀部分。如果"graphiteTagsEnabled"为true,请忽略[]
management.health.cassandra.enabled是否启用Cassandra健康度检查true
management.health.couchbase.enabled是否启用Couchbase健康度检查true
management.health.db.enabled是否启用数据库健康度检查true
management.health.db.ignore-routing-data-sources当创建数据库健康度指标时是否忽略AbstractRoutingDataSourcesfalse
management.health.defaults.enabled是否启用默认的健康度指标true
management.health.diskspace.enabled是否启用存盘空间监控度检查true
management.health.diskspace.path用于计算可用的存盘空间的路径
management.health.diskspace.threshold应该可用的最小磁盘空间10MB
management.health.elasticsearch.enabled是否启用Elasticsearch健康度检查true
management.health.influxdb.enabled是否启用InfluxDB健康度检查true
management.health.jms.enabled是否启用JMS健康度检查true
management.health.ldap.enabled是否启用LDAP健康度检查true
management.health.livenessstate.enabled是否启用存活状态健康度检查false
management.health.mail.enabled是否启用Mail健康度检查true
management.health.mongo.enabled是否启用MongoDB健康度检查true
management.health.neo4j.enabled是否启用Neo4j健康度检查true
management.health.ping.enabled是否启用ping健康度检查true
management.health.rabbit.enabled是否启用RabbitMQ健康度检查true
management.health.readinessstate.enabled是否启用就绪状态健康度检查false
management.health.redis.enabled是否启用Redis健康度检查true
management.health.status.order[DOWN, OUT_OF_SERVICE, UP, UNKNOWN]
management.humio.metrics.export.api-tokenHumio API 令牌.
management.humio.metrics.export.batch-size用于此后端的每个请求测量值的数量。如果发现更多的测量值,将发起多个请求10000
management.humio.metrics.export.connect-timeout请求到此后端的连接超时时间5s
management.humio.metrics.export.enabled是否启用将指标导出到此后端true
management.humio.metrics.export.read-timeout请求此后端的读超时时间10s
management.humio.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.humio.metrics.export.tags.*描述存储指标的数据源的标签。Humio标签是与Micrometer的标签不同的概念。Micrometer的标签被用于沿维度边界划分指标。
management.humio.metrics.export.uri运输指标的URI。如果你需要发布指标到一个内部代理路由到Humio,你可以使用此属性定义代理的位置https://cloud.humio.com
management.influx.metrics.export.api-version要使用的InfluxDB的API版本。默认为’v1’,除非配置一个org。如果配置了一个org,默认为’v2’
management.influx.metrics.export.auto-create-db如果在尝试指标到数据库之前它不存在,是否创建Influx数据库。仅支持InfluxDB v1true
management.influx.metrics.export.batch-size要用于后端的每个请求测量值的数量。如果发现更多测量值,将发出多个请求。10000
management.influx.metrics.export.bucket指标的Bucket。使用bucket名称或者ID。如果没有设置默认为db属性的值。只支持InfluxDB v2
management.influx.metrics.export.compressed是否启用发布到Influx的指标批处理的GZIP压缩true
management.influx.metrics.export.connect-timeout请求到后端的连接超时时间1s
management.influx.metrics.export.consistency写每个点的一致性one
management.influx.metrics.export.db发送指标的数据库。只支持InfluxDB v1mydb
management.influx.metrics.export.enabled是否启用将指标导出到该后端true
management.influx.metrics.export.org写入指标的Org.仅支持InfluxDB
management.influx.metrics.export.passwordInflux服务器的登陆密码。只支持InfluxDB
management.influx.metrics.export.read-timeout请求到后端的读超时10s
management.influx.metrics.export.retention-durationInflux应该保留数据到当前数据的时间周期。例如7d,检查 influx文档了解关于时间格式的更多详情。只有InfluxDB v1支持。
management.influx.metrics.export.retention-policy要使用的保留政策(如果一个也没有指定,则写入到DEFAULT保留。)。只有InfluxDB v1支持。
management.influx.metrics.export.retention-replication-factor在集群中要存储多少数据的副本。对于单节点的实例必须为1.只有InfluxDB v1支持。
management.influx.metrics.export.retention-shard-duration分片组覆盖的时间范围。例如2w,请查看influx文档了解更多关于时间格式的细节.只有InfluxDB v1支持。
management.influx.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.influx.metrics.export.token调用InfluxDBh后端的要使用的身份认证令牌。对于InfluxDB v1,使用Bearer模式。对于v2,使用Token模式
management.influx.metrics.export.uriInflux服务器URIhttp://localhost:8086
management.influx.metrics.export.user-nameInflux服务器登陆用户名。只有InfluxDB v1支持。
management.info.build.enabled是否启用build信息true
management.info.defaults.enabled是否启用默认信息贡献者true
management.info.env.enabled是否启用环境信息false
management.info.git.enabled是否启用git信息true
management.info.git.mode用于暴露git信息的模式simple
management.info.java.enabled是否启用java信息false
management.info.os.enabled是否启用操作系统信息false
management.jmx.metrics.export.domainMetrics JMX域名称metrics
management.jmx.metrics.export.enabled是否启用将指标暴露到到后端true
management.jmx.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.kairos.metrics.export.batch-size用于此后端每个请求测量值的数量。如果发现更多的测量值,将发出多个请求。10000
management.kairos.metrics.export.connect-timeout请求到此后端的连接超时时间1s
management.kairos.metrics.export.enabled是否启用将指标导出到后端true
management.kairos.metrics.export.passwordKairosDB服务器登陆密码
management.kairos.metrics.export.read-timeout请求到后端读超时时间10s
management.kairos.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.kairos.metrics.export.uriKairosDB服务器URIhttp://localhost:8080/api/v1/datapoints
management.kairos.metrics.export.user-nameKairosDB服务器登陆用户名
management.metrics.data.repository.autotime.enabledtrue
management.metrics.data.repository.autotime.percentiles
management.metrics.data.repository.autotime.percentiles-histogramfalse
management.metrics.data.repository.metric-name发送请求的指标名称spring.data.repository.invocations
management.metrics.distribution.buffer-length.*在环形缓冲区中指定的名称开头的仪器ID柱状图数量。最长匹配获胜,键 all也可以用于配置所有仪器
management.metrics.distribution.expiry.*对于指定的名称开头的仪器ID的采样在被重置和旋转之前累积到衰减分布统计信息的最大时间。最长匹配获胜,键 all也可以用于配置所有仪器
management.metrics.distribution.maximum-expected-value.*指定名称开头的仪器ID期望观察的最大值。最长匹配获胜.值可以指定为double或者时间值(对于时间仪器,如果没有指定,默认为ms)
management.metrics.distribution.minimum-expected-value.*指定名称开头的仪器ID期望观察的最小值。最长匹配获胜.值可以指定为double或者时间值(对于时间仪器,如果没有指定,默认为ms)
management.metrics.distribution.percentiles.*对于以指定名称开始的仪器ID,要运输到后端的特定的计算的非聚合的百分比。最长匹配获胜,键 all也可以用于配置所有仪器
management.metrics.distribution.percentiles-histogram.*以指定名称开始的仪器ID是否应该发送到百分比柱状图。要基于柱状图监控支持聚合百分比计算系统,此项可以设置为true.对于其他系统,此项是不受影响。最长匹配获胜,键 all也可以用于配置所有仪器
management.metrics.distribution.slo.*指定名称开头的仪器ID的指定的服务级别目标边界。最长匹配获胜。计数器将被推送于每一个特定的边界。值可以指定为double或者时间值(对于时间仪器,如果没有指定默认使用ms)
management.metrics.enable.*是否启用指定名称开头的仪器ID。最长匹配获胜,键 all也可以用于配置所有仪器
management.metrics.mongo.command.enabled是否启用Mongo客户端命令指标true
management.metrics.mongo.connectionpool.enabled是否启用Mongo连接池指标true
management.metrics.system.diskspace.paths以逗号分隔用于报告磁盘指标的路径列表[.]
management.metrics.tags.*应用到每一个仪器的通用标签
management.metrics.use-global-registry自动化配置的MeterRegistry实现是否应该绑定到在Metrics的全局静态注册表。对于测试,设置此项为’false’来使测试依赖最大化true
management.metrics.web.client.max-uri-tags允许的唯一URI标签值的最大值。在到达标签值的最大值之后,使用额外的标签指标被过滤器拒绝100
management.metrics.web.client.request.autotime.enabled是否自动化时间web客户端请求true
management.metrics.web.client.request.autotime.percentiles要发布的已计算的非聚合百分比
management.metrics.web.client.request.autotime.percentiles-histogram是否应该发布百分比柱状图false
management.metrics.web.client.request.metric-name发送请求的指标名称http.client.requests
management.metrics.web.server.max-uri-tags允许的唯一URI标签值的最大数量,如果达到标签值的最大数量,额外的标签指标通过过滤器拒绝100
management.metrics.web.server.request.autotime.enabled是否自动化时间web服务器请求true
management.metrics.web.server.request.autotime.percentiles要发布的已计算的非聚合百分比
management.metrics.web.server.request.autotime.percentiles-histogram是否应该发布百分比柱状图false
management.metrics.web.server.request.ignore-trailing-slash记录指标时是否应该忽略默认斜杠true
management.metrics.web.server.request.metric-name接收请求的指标名称http.server.requests
management.newrelic.metrics.export.account-idNew Relic账户ID
management.newrelic.metrics.export.api-keyNew RelicAPI key
management.newrelic.metrics.export.batch-size用于后端每个请求的测量值数量。如果发现更多测量值,将发出多个请求。10000
management.newrelic.metrics.export.client-provider-type要使用的提供者类型
management.newrelic.metrics.export.connect-timeout请求到后端的链接超时时间1s
management.newrelic.metrics.export.enabled是否启用将指标导出到后端true
management.newrelic.metrics.export.event-type应该发布的事件类型。如果’meter-name-event-type-enabled’设置为true则忽略这个属性SpringBootSample
management.newrelic.metrics.export.meter-name-event-type-enabled是否发送到仪器名称作为事件类型而不是使用’event-type’配置属性值。如果不遵循New Relic指南或者事件类型类型与之前的Spring Boot版本一致,可以设置为’true’false
management.newrelic.metrics.export.read-timeout请求到后端的读超时时间10s
management.newrelic.metrics.export.step要使用的步大小(也就是报告频率)1m
management.newrelic.metrics.export.uri运输指标的URIhttps://insights-collector.newrelic.com
management.otlp.metrics.export.batch-size用于后端每个请求的测量值数量。如果发现更多测量值,将发出多个请求。10000
management.otlp.metrics.export.connect-timeout请求到后端的链接超时时间1s
management.otlp.metrics.export.enabled是否启用将指标导出到后端true
management.otlp.metrics.export.read-timeout请求到后端的读超时10s
management.otlp.metrics.export.resource-attributes.*监控的资源属性
management.otlp.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.otlp.metrics.export.urlOLTP服务器的URIhttp://localhost:4318/v1/metrics
management.prometheus.metrics.export.descriptions是否启用将描述作为抓取负载的一部分发送给Prometheus。关闭此项,尽量减少发送到每一个抓取数量量true
management.prometheus.metrics.export.enabled是否启用将指标导出到后端true
management.prometheus.metrics.export.histogram-flavor支持DistributionSummary和Timer的柱状图类型prometheus
management.prometheus.metrics.export.pushgateway.base-url对于Pushgateway的基本URIhttp://localhost:9091
management.prometheus.metrics.export.pushgateway.enabled通过Prometheus Pushgateway启用推送false
management.prometheus.metrics.export.pushgateway.grouping-key.*推送的指标分组key
management.prometheus.metrics.export.pushgateway.job应用程序实例的作业标志符
management.prometheus.metrics.export.pushgateway.passwordPrometheus Pushgateway的登陆密码
management.prometheus.metrics.export.pushgateway.push-rate推送指标的频率1m
management.prometheus.metrics.export.pushgateway.shutdown-operation在关机时应该执行的操作none
management.prometheus.metrics.export.pushgateway.usernamePrometheus Pushgateway的登陆用户
management.prometheus.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.server.add-application-context-header在每个响应中添加"X-Application-Context"false
management.server.address管理端点应该绑定的网络地址。需要一个自定义的management.server.port
management.server.base-path管理端点基本路径(例如,‘/management’)。需要一个自定义的management.server.port.
management.server.port管理端点HTTP端口(默认情况下使用与应用程序相同的端口)。配置一个不同的端口来使用特定的管理SSL
management.server.ssl.certificate
management.server.ssl.certificate-private-key
management.server.ssl.ciphers支持的SSL密文
management.server.ssl.client-auth客户端身份授权模式。需要信任存储。
management.server.ssl.enabled是否启用SSL支持true
management.server.ssl.enabled-protocols启用SSL支持
management.server.ssl.key-alias在可存储区标识key的别名
management.server.ssl.key-password用于访问key存储区key的密码
management.server.ssl.key-store持有SSL凭证的key存储区的路径(通常是一个jks文件)
management.server.ssl.key-store-password用于访问key存储区的密码
management.server.ssl.key-store-providerkey存储区的提供者
management.server.ssl.key-store-typekey存储区的类型
management.server.ssl.protocol要使用的SSL协议TLS
management.server.ssl.trust-certificate
management.server.ssl.trust-certificate-private-key
management.server.ssl.trust-store持有SSL凭证的信任存储
management.server.ssl.trust-store-password用于访问信任存储区的密码
management.server.ssl.trust-store-provider信任存储区的提供者
management.server.ssl.trust-store-type信任存储区的类型
management.signalfx.metrics.export.access-tokenSignalFX访问令牌
management.signalfx.metrics.export.batch-size用于后端每个请求的测量值数量。如果发现更多测量值,将发出多个请求。10000
management.signalfx.metrics.export.connect-timeout请求到后端的连接超时时间1s
management.signalfx.metrics.export.enabled是否启用将指标导出到后端true
management.signalfx.metrics.export.read-timeout请求到后端的读超时10s
management.signalfx.metrics.export.source将指标发布到SignalFx的唯一标识的app实例。默认为本地主机名称
management.signalfx.metrics.export.step要使用的步大小(也就是报告频率)10s
management.signalfx.metrics.export.uri运输指标的URIhttps://ingest.signalfx.com
management.simple.metrics.export.enabled是否启用将指标导出到后端true
management.simple.metrics.export.mode计数模式cumulative
management.simple.metrics.export.step要使用的步大小(也就是报告频率)1m
management.stackdriver.metrics.export.batch-size用于后端每个请求的测量值数量。如果发现更多测量值,将发出多个请求。10000
management.stackdriver.metrics.export.connect-timeout请求到后端的读超时时间1s
management.stackdriver.metrics.export.enabled是否启用将指标导出到后端true
management.stackdriver.metrics.export.project-id要监控的Google Cloud项目的标志符
management.stackdriver.metrics.export.read-timeout请求到后端的读超时10s
management.stackdriver.metrics.export.resource-labels.*监控的资源标签
management.stackdriver.metrics.export.resource-type监控的资源类型global
management.stackdriver.metrics.export.step要使用的步大小(也就是报告频率)1m
management.stackdriver.metrics.export.use-semantic-metric-types是否使用语义上正确的指标类型。当设置为false,计数器指标作为GAUGE MetricKind被发布。当为true时,计数器指标作为CUMULATIVE MetricKind发布false
management.statsd.metrics.export.buffered在将测量值发送到StatsD服务器之前,是否应该缓存测量值true
management.statsd.metrics.export.enabled是否启用将指标导出到后端true
management.statsd.metrics.export.flavor要使用的StatsDB 行协议datadog
management.statsd.metrics.export.host接收导出的指标的StatsD服务器主机localhost
management.statsd.metrics.export.max-packet-length在你的网联MTU内应该保持单个负载的总长度1400
management.statsd.metrics.export.polling-frequency轮询评估的频率。当一个评估被轮询时,它的值被重新计算,并且如果这个值已经变更(或者,publishUnchangedMeters为true),它将发送到StatsD服务器。10s
management.statsd.metrics.export.port接收导出的指标的StatsD服务器端口8125
management.statsd.metrics.export.protocol接收导出的指标的StatsD服务器协议udp
management.statsd.metrics.export.publish-unchanged-meters是否发送未改变的指标到StatsD服务器true
management.statsd.metrics.export.step计算窗口的像max统计信息中使用的步长。为了充分利用这些数据,将步间隔与你的抓取间隔对齐1m
management.trace.http.enabled是否启用HTTP请求响应追踪true
management.trace.http.include包含在追踪的项。默认为请求头数据(排除身份认证和Cookie),响应头数据(排除Set-Cookie)和实际时间[request-headers, response-headers, errors]
management.tracing.sampling.probability在0.0和1.0范围内样例追踪的可能性0.1
management.wavefront.api-token当直接将指标和追踪发布到Wavefront API主机时使用的API令牌
management.wavefront.metrics.export.batch-size用于后端每个请求的测量值数量。如果发现更多测量值,将发出多个请求。10000
management.wavefront.metrics.export.connect-timeout请求到后端的连接超时时间1s
management.wavefront.metrics.export.enabled是否启用将指标导出到此后端true
management.wavefront.metrics.export.global-prefix当在Wavefront UI中查看时,将从这个app的仪表器起源的指标和从其他Wavefront集成的指标分开的全局前缀。
management.wavefront.metrics.export.read-timeout请求到后端的读超时10s
management.wavefront.metrics.export.step使用的步大小(也就是说,报告频率)1m
management.wavefront.sender.batch-size用于Wavefront的每个请求的测量值大小。如果发现更多测量值,将发出多个请求。10000
management.wavefront.sender.flush-interval发送队列的信息的刷新间隔1s
management.wavefront.sender.max-queue-size队列信息的最大大小50000
management.wavefront.sender.message-size信息的最大大小
management.wavefront.sourceapp实例的唯一标识,是发布到Wavefront的指标和追踪的源。默认为本地主机名称
management.wavefront.tracing.application-name应用程序名称。默认为’spring.application.name’
management.wavefront.tracing.service-name服务名称。默认为’spring.application.name’
management.wavefront.uri运输指标和追踪的URIhttps://longboard.wavefront.com
management.zipkin.tracing.connect-timeout请求到Zipkin的连接超时时间1s
management.zipkin.tracing.endpointZipkin API的URIhttp://localhost:9411/api/v2/spans
management.zipkin.tracing.read-timeout请求到Zipkin的读超时时间10s
.A.15. Devtools属性
名称描述默认值
spring.devtools.add-properties是否启用默认的开发属性true
spring.devtools.livereload.enabled是否启用livereload.com-compatible服务器true
spring.devtools.livereload.port服务器端口35729
spring.devtools.remote.context-path用于处理远程连接的上下文路径/.~~spring-boot!~
spring.devtools.remote.proxy.host用于连接远程应用程序的代理主机
spring.devtools.remote.proxy.port用于连接远程应用程序的代理端口
spring.devtools.remote.restart.enabled是否启用远程重启true
spring.devtools.remote.secret建立一个连接所需要的共享秘钥(需要启用远程支持)
spring.devtools.remote.secret-header-name用于转发共享秘钥的HTTP头数据X-AUTH-TOKEN
spring.devtools.restart.additional-exclude应该从触发一个全量重启排除的额外的模式
spring.devtools.restart.additional-paths查看变更的额外路径
spring.devtools.restart.enabled是否启用自动化重启true
spring.devtools.restart.exclude应该从触发一个全量重启排除的格式META-INF/maven/**,META-INF/resources/**,resources/**,static/**,public/**,templates/**,**/*Test.class,**/*Tests.class,git.properties,META-INF/build-info.properties
spring.devtools.restart.log-condition-evaluation-delta是否在重启时记录条件评估差值true
spring.devtools.restart.poll-interval类路径变更轮询之间等待的时间1s
spring.devtools.restart.quiet-period在重启触发之前,没有任何类路径变化要求的安静时间400ms
spring.devtools.restart.trigger-file特定的文件名称,当被修改时,触发重启检查。必须是在类路径中出现的一个文件的简单的名称(不带任何路径)。如果没有指定,任何类路径文件变更都会触发重启。
.A.16. 测试属性
名称描述默认值
spring.test.database.replace要替换的现有数据源类型any
spring.test.mockmvc.printMVC打印选项default

附录B:配置元数据

Spring Boot jar包含元数据文件,提供所有支持的配置属性明细。这个文件被设计为让IDE开发者提供上下文的帮助和作为与application.properties或者application.yml文件工作的"代码补全"。

元数据文件的大多数是在编译期通过处理使用@ConfigurationProperties注解的所有项自动化生成。然而,对于极端情况或者更高级用例可以手工写元数据的部分。

.B.1. 元数据格式

配置元数据文件位于jar文件META-INF/spring-configuration-metadata.json下。他们使用和项类别在“groups”或者“properties”下并且额外的值提示类别在“hints”下的JSON格式,如下示例所示:

{"groups": [
    {
        "name": "server",
        "type": "org.springframework.boot.autoconfigure.web.ServerProperties",
        "sourceType": "org.springframework.boot.autoconfigure.web.ServerProperties"
    },
    {
        "name": "spring.jpa.hibernate",
        "type": "org.springframework.boot.autoconfigure.orm.jpa.JpaProperties$Hibernate",
        "sourceType": "org.springframework.boot.autoconfigure.orm.jpa.JpaProperties",
        "sourceMethod": "getHibernate()"
    }
    ...
],"properties": [
    {
        "name": "server.port",
        "type": "java.lang.Integer",
        "sourceType": "org.springframework.boot.autoconfigure.web.ServerProperties"
    },
    {
        "name": "server.address",
        "type": "java.net.InetAddress",
        "sourceType": "org.springframework.boot.autoconfigure.web.ServerProperties"
    },
    {
          "name": "spring.jpa.hibernate.ddl-auto",
          "type": "java.lang.String",
          "description": "DDL mode. This is actually a shortcut for the \"hibernate.hbm2ddl.auto\" property.",
          "sourceType": "org.springframework.boot.autoconfigure.orm.jpa.JpaProperties$Hibernate"
    }
    ...
],"hints": [
    {
        "name": "spring.jpa.hibernate.ddl-auto",
        "values": [
            {
                "value": "none",
                "description": "Disable DDL handling."
            },
            {
                "value": "validate",
                "description": "Validate the schema, make no changes to the database."
            },
            {
                "value": "update",
                "description": "Update the schema if necessary."
            },
            {
                "value": "create",
                "description": "Create the schema and destroy previous data."
            },
            {
                "value": "create-drop",
                "description": "Create and then destroy the schema at the end of the session."
            }
        ]
    }
]}
  • 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

每一个“property”是一个配置项,用户使用给定的值指定。例如,server.portserver.address可以在你的application.properties/application.yaml中指定,如下:

server:
  port: 9090
  address: 127.0.0.1
  • 1
  • 2
  • 3

“groups”是更高级别项,他们自己不会指定一个值但是为属性提供一个上下文的组。例如,server.portserver.address属性是server组的一部分。

不是必须每一个“property”有一个“group”。一些属性可能在他们自己的权利。

最后,“hints”是额外的信息用来协助用户配置一个给定的属性。例如,当开发者正在配置spring.jpa.hibernate.ddl-auto属性,工具可以使用提示来提供一些对于none,validata,update,create,create-drop值自动补全的帮助。

Group属性

包含在groups数组的JSON对象可以包含以下表格所展示的属性:

名称类型目的
nameString组的全量名称。这个属性是强制的
typeString组的数据类型的类名称。例如,如果组是基于带有@ConfigurationProperties注解的类,这个属性应该包含该类全限制名称。如果它是基于@Bean方法,他将返回该方法的类型。如果类型未知,可能省略此属性
descriptionString可以展示给用户的这个组的简短描述。如果没有描述可用,可以忽略它。推荐描述是简短的段落。使用一行提供一个简短的总结。描述的最后一行应该以(.)结尾。
sourceTypeString贡献此组的源类名称。例如,如果组基于注解的@ConfigurationProperties@Bean方法,这个属性包含@Configuraion类的全量限定名称。如果源类型未知,可以忽略这个属性
sourceMethodString这个组(例如,带有注解@Bean方法的@ConfigurationProperties的名称)贡献的方法的完整名称(包含括号和参数类型),如果源方法未知,可以忽略它
Property属性
名称类型目的
nameString属性的全量名称。名称使用小写句号分隔格式(例如server.address)。这个属性是强制的
typeString属性的数据类型的全量签名(例如,java.lang.String),也可以是完整的泛型(例如java.util.Map<java.lang.String,com.example.MyEnum>)。你也可以使用这个属性来指导用户他们可以输入的值的类型。为了保持一致,原生类型通过使用它的包装类指定(例如,boolean变为java.lang.Boolean)。注意此类可以是一个混合类型,在绑定值时从String转换而来。如果此类型未知,可以忽略它。
descriptionString可以展示给用户的一个简短的属性描述。如果没有描述可用,可以忽略它。推荐描述是短的段落,第一行提供一个简洁的总结。描述中的最后一行应该以(.)结尾。
sourceTypeString提供此属性源的类名称。例如,如果属性来自带有@ConfigurationProperties注解的类,这个属性将包含该类全量限定名称。如果源类型未知,可以忽略它。
defaultValueObject默认值,如果没有指定这个属性则使用它。如果属性的类型是一个数组,他可以是数组的值。如果默认值未知,可以忽略它
deprecationDeprecation指定这个属性是否弃用。如果字段没有启用或者信息是未知的,可以忽略它。下一个表提供了关于deprecation更多的细节。

在每一个properties元素在deprecation属性中包含的JSON对象可以包含以下属性:

名称类型目的
levelString弃用的级别,可以是warning(默认值)或者error。当属性有warning启用级别,它应该始终绑定在环境中。然而,当它有一个error启用级别时,不在管理这个属性并且不会进行绑定。
reasonString一个简短的属性被启用的原因。如果没有原因可用,可以忽略它。推荐描述是短段落,第一行提供简短的总结。描述中的最后一行应该以(.)结尾。
replacementString替换此启用的属性的属性完整名称。如果没有此属性的替换,可以忽略它。

在Spring Boot 1.3之前,单独的deprecated boolean属性可以使用代替deprecation元素。这仍然以不赞成的方式被支持,应该不在使用。如果没有原因和替换可以使用,将设置一个空的deprecation对象。

也可以在代码中声明的方式指定弃用,通过添加@DeprecatedConfigurationProperty注解到getter方法暴露弃用属性。例如,假设my.app.target属性是混乱的,重命名为my.app.name。以下示例展示了如何处理该情景:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;

@ConfigurationProperties("my.app")
public class MyProperties {

    private String name;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Deprecated
    @DeprecatedConfigurationProperty(replacement = "my.app.name")
    public String getTarget() {
        return this.name;
    }

    @Deprecated
    public void setTarget(String target) {
        this.name = target;
    }

}
  • 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

没有方式设置level。假设warning,因为代码一直处理这个属性。

前面的代码确保启用属性仍然可以工作(幕后委托给name属性)。一旦getTargetsetTarget方法可以在你的公共API中移除,在元数据中的自动化的弃用提示也将移除。如果你想要保持提示,添加手动的error弃用级别的元数据保证用户关于该属性也是知情的。当提供了一个replacement这样做特别有用。

Hint属性

hints数组中包含的JSON对象可以包含以下表格展示的属性:

名称类型目的
nameString此提示参考的属性的完整名称。名称是小写的聚合分隔格式(例如spring.mvc.servlet.path)。如果属性涉及map(例如,system.contexts),提醒可以应用到map的keys(system.contexts.keys)或者map的值(system.contexts.values)。这个属性是强制的。
valuesValueHint[]ValueHint对象定义的有效值列表(在下一个表中描述的)。每一个条目都定义了一个值,并可能有一个描述。
providersValueProvider[]ValueProvider对象定义的提供者列表(在此文档中稍后描述)。每一个条目定义提供者名称和他的参数,如有有的话。

在每一个hint元素的values属性中包含的JSON对象可以包含以下表格所描述的属性:

名称类型目的
valueObject提示参考的元素的有效值。如果属性类型是一个数组,他也可以是一个值数组。这个属性是强制的。
descriptionString可以展示给用户的一个简短值的描述。如果没有描述可用,可以忽略它。推荐描述是短的段落,第一行提供一个简洁的总结。最后一行应该以(.)结尾的描述。

在每一个hint元素的providers属性包含的JSON对象可以包含以下表格的表述的属性:

名称类型目的
nameString用于为此元素参考提供额外的内容帮助的提供者名称。
parametersJSON object任何提供者支持的额外的参数(可以查看提供者文档了解更多详情)
重复的元数据项

使用相同的“属性”和“组”名称可以在原数据文件内出现多次。例如,你可以将两个单独的类绑定到相同的前缀,每一个有潜在的重叠的属性名称。虽然相同的名称出现在元数据中多次并不是常见的,元数据的使用者应该注意确保他们支持它。

.B.2. 提供手动提示

在配置一个给定的属性时,要提升用户经验和进一步帮助用户,你可以提供额外的元数据,他们是:

  • 描述属性潜在值的列表
  • 关联提供者,将定义良好的语义附加到属性,以便工具可以基于项目的上下文发现潜在值的列表。
值提示

每一个提示的name属性引用一个name属性。在前面展示的初始化的示例中,我们为spring.jpa.hibernate.ddl-auto属性提供了五个值:none,validate,update,createcreate-drop。每一个值也有一个描述。

如果你的属性是Map类型,你可以为keys和values提供提示(并不是为map本身)。特定的.keys.values后缀必须依次引用keys和values。

假设my.contexts映射逻辑的String值到一个interger,如下示例所示:

import java.util.Map;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties("my")
public class MyProperties {

    private Map<String, Integer> contexts;

    public Map<String, Integer> getContexts() {
        return this.contexts;
    }

    public void setContexts(Map<String, Integer> contexts) {
        this.contexts = contexts;
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

魔术值(在这个示例中)是sample1sample2。为了对keys提供额外的内容帮助, 你可以添加以下JSON到模块的手动元数据中:

{"hints": [
    {
        "name": "my.contexts.keys",
        "values": [
            {
                "value": "sample1"
            },
            {
                "value": "sample2"
            }
        ]
    }
]}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

我们建议你使用Enum代替这两个值。如果你的IDE支持它,这是迄今为止最有效的自动完成的方法。

值提供者

提供者是非常有力的方式来将语义附加到属性。在这部分,我们定义官方的提供者,你可以使用它为你自己的提示。然而,你最擅长的IDE可以实现一些他们或者没有实现。而且,它最终可以提供他自己的服务。

因为这是一个新特性,IDE提供商必须赶上他是如何工作的。采纳的时间自然不同。

以下表格汇总了支持的提供者列表:

名称描述
any允许提供任何额外的值
class-reference自动完成在项目中可以用的类。通常通过target参数指定的基类约束
handle-as处理属性, 就好像它是由强制的target参数定义的类型定义的一样
logger-name自动完成校验日志名称和日志组。通常,在当前对象可用的包和类名称以及定义的组都可以自动完成。
spring-bean-reference在当前项目中自动完成可用的bean名称。通常,由target参数指定的基类约束。
spring-profile-name在项目中自动完成可用的Spring配置文件名称。

对应给定的属性,只能有一个提供者是活动的,但是如果他们都可以以相同的方式管理该属性,你可以指定几个提供者。确保优先使用最有力的提供者,IDE必须使用使用JSON部分中它可以处理的第一个提供者。如果对给定的属性没有支持的提供者,也不会提供特殊的内容帮助。

Any

特殊的Any提供者值允许任何额外的值被提供。如果支持的话,会应用基于属性类型的常规的值校验。

如果你有值的列表,并且任何额外的值仍然应该被认为是有效的,则通常使用此提供者。

以下示例提供onoff作为system.state的自动补全的值:

{"hints": [
    {
        "name": "system.state",
        "values": [
            {
                "value": "on"
            },
            {
                "value": "off"
            }
        ],
        "providers": [
            {
                "name": "any"
            }
        ]
    }
]}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

注意,在前面的示例中,也允许任何其他值。

Class Reference

class-reference提供者自动补全在项目中可用的类。这个提供者支持以下参数:

参数类型默认值描述
targetStringClassnone类的全量限制名称,它应该可以赋值给选定的值。通常用于过滤掉非候选的类。注意这个信息可以由类型本身通过公开具有适合上界的类来提供
concretebooleantrue指定是否只有具体类被认为是有效的候选者

以下元数据片段对应标准的server.servlet.jsp.class-name属性,它定义了要使用的JspServlet类名称:

{"hints": [
    {
        "name": "server.servlet.jsp.class-name",
        "providers": [
            {
                "name": "class-reference",
                "parameters": {
                    "target": "jakarta.servlet.http.HttpServlet"
                }
            }
        ]
    }
]}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
Handle As

handle-as提供者允许你替换属性类型为更高级别的类型。此提供者通常在属性存在java.lang.String类型时发生,因为你不想你的配置类依赖可能不存在类路径中的类。这个提供者支持一下参数:

参数类型默认值描述
targetStringClassnone要为属性考虑的类型的全量限定名称。这个参数是强制的。

可以使用以下类型:

  • 任何java.lang.Enum:对于此属性任何可能的值的列表(我们建议使用Enum类型定义属性,因为IDE自动补全值不需要任何提示)。
  • java.nio.charset.Charset:支持字符/编码值的自动补全(例如UTF-8
  • java.util.Locale:区域的自动补全(例如en_US
  • org.springframework.util.MimeType:支持内容类型支的自动补全(例如text/plain
  • org.springframework.core.io.Resource:支持Spring的Resource抽象自动补全,涉及在文件系统或者类路径中的文件(例如classpath:/sample.properties

如果可以提供多个值,使用Collection或者数组类型来告诉IDE有关他的信息。

以下元数据片段与标准的spring.liquibase.change-log属性相对应,它定义了修改要使用的日志的路径。它实际作为一个org.springframework.core.io.Resource内部使用,但不能这样公开,因为我们需要保持原始的String值来将它传入到Liquibase API。

{"hints": [
    {
        "name": "spring.liquibase.change-log",
        "providers": [
            {
                "name": "handle-as",
                "parameters": {
                    "target": "org.springframework.core.io.Resource"
                }
            }
        ]
    }
]}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
Logger Name

logger-name提供者自动完成有效的日志名称和日志组。通常,在当前项目有效的包和类名称是自动完成。如果启用组(默认情况)并且如果在配置中识别自定义日志记录器组,已经为它提供了自动完成。特定的框架可能有额外的逻辑日志记录器名称可以被支持。

此提供者支持一下参数:

参数类型默认值描述
groupbooleantrue指定是否已经组应该被考虑

因为一个日志名称可以是任意的名称,这个提供者应该允许任何值,可以突出显示在项目类路径中的不可用的有效包和类名称。

以下元数据片段对应标准的logging.level属性。keys是日志记录器名称,values对应标准的日志级别或者任意自定义级别。由于Spring Boot定义了一些开箱即用的日志记录器组,因此为这些组添加了专门的值提示:

{"hints": [
    {
        "name": "logging.level.keys",
        "values": [
            {
                "value": "root",
                "description": "Root logger used to assign the default logging level."
            },
            {
                "value": "sql",
                "description": "SQL logging group including Hibernate SQL logger."
            },
            {
                "value": "web",
                "description": "Web logging group including codecs."
            }
        ],
        "providers": [
            {
                "name": "logger-name"
            }
        ]
    },
    {
        "name": "logging.level.values",
        "values": [
            {
                "value": "trace"
            },
            {
                "value": "debug"
            },
            {
                "value": "info"
            },
            {
                "value": "warn"
            },
            {
                "value": "error"
            },
            {
                "value": "fatal"
            },
            {
                "value": "off"
            }

        ],
        "providers": [
            {
                "name": "any"
            }
        ]
    }
]}
  • 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
Spring Bean Reference

spring-bean-reference 提供者自动完成当前项目配置定义的bean。这个提供者支持一下参数:

参数类型默认值描述
targetString(Class)none应该分配给候选者的bean类的全量限定名称。通常用于过滤非候选bean。

以下元数据片段对应标准的spring.jmx.server属性,它定义了要使用的MBeanServerbean:

{"hints": [
    {
        "name": "spring.jmx.server",
        "providers": [
            {
                "name": "spring-bean-reference",
                "parameters": {
                    "target": "javax.management.MBeanServer"
                }
            }
        ]
    }
]}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

绑定器不知道元数据。如果你提供该提示,你仍需要通过使用ApplicationContext转换bean名称到一个真实的Bean引用。

Spring Profile Name

spring-profile-name提供者自动完成当前项目的配置文件中定义的Spring配置文件。

以下元数据片段对应标准的spring.profiles.active属性,它定义了启用的Spring配置文件的名称:

{"hints": [
    {
        "name": "spring.profiles.active",
        "providers": [
            {
                "name": "spring-profile-name"
            }
        ]
    }
]}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
.B.3. 通过使用注解处理器生成你自己的源数据

你可以非常容易地使用spring-boot-configuration-processorjar将注解了@ConfigurationProperties项目生成你自己的配置元数据文件。这个jar包含一个Java注解处理器,当你的项目编译时调用。

配置注解处理器

要使用处理器,包含spring-boot-configuration-processor依赖。

使用Maven依赖应该声明为可选的,如下示例所示:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

使用Gradle,应该在annotationProcessor配置中声明依赖,如下示例所示:

dependencies {
    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
}
  • 1
  • 2
  • 3

如果你使用一个additional-spring-configuration-metadata.json文件,compileJava任务配置取决于processResources任务,如下示例所示:

tasks.named('compileJava') {
    inputs.files(tasks.named('processResources'))
}
  • 1
  • 2
  • 3

此依赖确保当注解处理器在编译器运行期间,额外的元数据可用。

如果在你的项目中,你正在使用AspectJ,你需要确保注解处理器只运行一次。有几种方式可以做到这些。使用Maven,你可以显示地配置maven-apt-plugin并且只在那将此依赖添加到注解处理器。你也可以让AspectJ插件在maven-comiler-plugin配置中运行所有处理并禁用注解处理,如下:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <configuration>
       <proc>none</proc>
   </configuration>
</plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果在你的项目中你使用Lombok,你需要确保他的注解处理器在spring-boot-configuration-processor之前运行。为此使用Maven,你可以使用Maven编译插件的annotationProcessors属性以正确的顺序列出注解处理器。如果你没有使用这个属性,并且通过在类路径中的可用依赖选取注解处理器,确保spring-boot-configuration-processor依赖之前定义的lombok依赖。

自动化元数据生成

处理器同时选取使用@ConfigurationProperties类和方法。

如果此类有一个单独的参数构造器,每个构造器参数创建一个属性,除非构造器使用了@Autowired注解。如果这个类有一个显示地使用@ConstructorBinding注解的构造器,该构造器的每个构造器参数创建一个属性。除此之外,通过对于集合和map类型特殊的处理(即使只有一个getter存在也会检测)与标准的getters和setters的存在来发现属性。此注解处理器也支持@Data,@Value,@Getter,@Setterlombok注解的使用。

考虑以下示例:

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "my.server")
public class MyServerProperties {

    /**
     * Name of the server.
     */
    private String name;

    /**
     * IP address to listen to.
     */
    private String ip = "127.0.0.1";

    /**
     * Port to listener to.
     */
    private int port = 9797;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getIp() {
        return this.ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public int getPort() {
        return this.port;
    }

    public void setPort(int port) {
        this.port = port;
    }
    // fold:off
}
  • 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

此暴露三个属性,my.server.name没有默认值,my.server.ipmy.server.port分别默认为127.0.0.19797。在字段上的Javadoc用来填充description属性。例如,my.server.ip的描述是“IP address to listen to”。

你应该只使用@ConfigurationProperties字段Javadoc的纯文本,因为在被添加到JSON之前他们不被处理。

这个注解处理器应用多个启发方法来从源模型提取默认值。默认值必须静态提供。特别是,不要引用在另外一个类定义的常量。而且,注解处理器不能从EnumCollections中自动检测默认值。

对于这些情况默认值不能检测。应该提供手动元数据。考虑以下示例:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "my.messaging")
public class MyMessagingProperties {

    private List<String> addresses = new ArrayList<>(Arrays.asList("a", "b"));

    private ContainerType containerType = ContainerType.SIMPLE;

    public List<String> getAddresses() {
        return this.addresses;
    }

    public void setAddresses(List<String> addresses) {
        this.addresses = addresses;
    }

    public ContainerType getContainerType() {
        return this.containerType;
    }

    public void setContainerType(ContainerType containerType) {
        this.containerType = containerType;
    }

    public enum ContainerType {

        SIMPLE, DIRECT

    }

}

  • 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

为了上面类中的属性的文档默认值,你可以添加以下内容到模块的手动元数据中

{"properties": [
    {
        "name": "my.messaging.addresses",
        "defaultValue": ["a", "b"]
    },
    {
        "name": "my.messaging.container-type",
        "defaultValue": "simple"
    }
]}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

只有属性的name需要记录现有属性额外的元数据。

内嵌的属性

注解处理器自动考虑内嵌的类作为内嵌属性。而不是在根命名空间记录ipport,我们将为它创建子命名空间,考虑更新的示例:

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "my.server")
public class MyServerProperties {

    private String name;

    private Host host;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Host getHost() {
        return this.host;
    }

    public void setHost(Host host) {
        this.host = host;
    }

    public static class Host {

        private String ip;

        private int port;

        public String getIp() {
            return this.ip;
        }

        public void setIp(String ip) {
            this.ip = ip;
        }

        public int getPort() {
            return this.port;
        }

        public void setPort(int port) {
            this.port = port;
        }

    }

}

  • 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

前面的示例生产元数据信息为my.server.namemy.server.host.port属性。你可以在一个字段上使用@NestedConfigurationProperty注解来表明一个常规的类(非内部类)应该和内嵌的类一样对待。

这个对collections和maps没有影响,因为这些类型是自动识别的。为他们的每一个生成一个单独的元数据。

添加额外的元数据

SpringBoot的配置文件处理是非常灵活的,它经常遇到一种情况可能存在没有绑定到@ConfigurationPropertiesbean的属性。你可能需要调整一些现有key的属性。为支持这种情况,允许你提供自定义的“提示”,注解处理器自动将来自META-INF/additional-spring-configuration-metadata.json的项合并到主要的元数据文件。

如果你依赖一个已经自动化检测的属性,描述,默认值和启用信息(如果指定的话)将被覆盖。如果手动属性声明没有在当前模块声明,作为一个新的属性添加。

additional-spring-configuration-metadata.json文件的格式是完全与常规的spring-configuration-metadata.json一样。额外的属性文件是可选的。如果你没有任何额外的属性,不要添加这个文件。

附录C:自动配置类

此附录包含所有Spring Boot提供的自动配置类的明细,并链接到文档和源码。记得要看下在你的应用程序中的条件报告了解更多自动配置特性开关的详情。(为此,使用--debug或者-Ddebug启用应用程序或者使用Actuator应用程序,使用conditions端点)。

.C.1. spring-boot-autoconfigure

以下自动配置类来自spring-boot-autoconfigure模块:

自动配置类链接
AopAutoConfigurationjavadoc
ApplicationAvailabilityAutoConfigurationjavadoc
ArtemisAutoConfigurationjavadoc
BatchAutoConfigurationjavadoc
CacheAutoConfigurationjavadoc
CassandraAutoConfigurationjavadoc
CassandraDataAutoConfigurationjavadoc
CassandraReactiveDataAutoConfigurationjavadoc
CassandraReactiveRepositoriesAutoConfigurationjavadoc
CassandraRepositoriesAutoConfigurationjavadoc
ClientHttpConnectorAutoConfigurationjavadoc
CodecsAutoConfigurationjavadoc
ConfigurationPropertiesAutoConfigurationjavadoc
CouchbaseAutoConfigurationjavadoc
CouchbaseDataAutoConfigurationjavadoc
CouchbaseReactiveDataAutoConfigurationjavadoc
CouchbaseReactiveRepositoriesAutoConfigurationjavadoc
CouchbaseRepositoriesAutoConfigurationjavadoc
DataSourceAutoConfigurationjavadoc
DataSourceTransactionManagerAutoConfigurationjavadoc
DispatcherServletAutoConfigurationjavadoc
ElasticsearchDataAutoConfigurationjavadoc
ElasticsearchRepositoriesAutoConfigurationjavadoc
ElasticsearchRestClientAutoConfigurationjavadoc
EmbeddedLdapAutoConfigurationjavadoc
EmbeddedWebServerFactoryCustomizerAutoConfigurationjavadoc
ErrorMvcAutoConfigurationjavadoc
ErrorWebFluxAutoConfigurationjavadoc
FlywayAutoConfigurationjavadoc
FreeMarkerAutoConfigurationjavadoc
GroovyTemplateAutoConfigurationjavadoc
GsonAutoConfigurationjavadoc
H2ConsoleAutoConfigurationjavadoc
HazelcastAutoConfigurationjavadoc
HazelcastJpaDependencyAutoConfigurationjavadoc
HibernateJpaAutoConfigurationjavadoc
HttpEncodingAutoConfigurationjavadoc
HttpHandlerAutoConfigurationjavadoc
HttpMessageConvertersAutoConfigurationjavadoc
HypermediaAutoConfigurationjavadoc
InfluxDbAutoConfigurationjavadoc
IntegrationAutoConfigurationjavadoc
JacksonAutoConfigurationjavadoc
JdbcRepositoriesAutoConfigurationjavadoc
JdbcTemplateAutoConfigurationjavadoc
JmsAutoConfigurationjavadoc
JmxAutoConfigurationjavadoc
JndiConnectionFactoryAutoConfigurationjavadoc
JndiDataSourceAutoConfigurationjavadoc
JooqAutoConfigurationjavadoc
JpaRepositoriesAutoConfigurationjavadoc
JsonbAutoConfigurationjavadoc
JtaAutoConfigurationjavadoc
KafkaAutoConfigurationjavadoc
LdapAutoConfigurationjavadoc
LdapRepositoriesAutoConfigurationjavadoc
LifecycleAutoConfigurationjavadoc
LiquibaseAutoConfigurationjavadoc
MailSenderAutoConfigurationjavadoc
MailSenderValidatorAutoConfigurationjavadoc
MessageSourceAutoConfigurationjavadoc
MongoAutoConfigurationjavadoc
MongoDataAutoConfigurationjavadoc
MongoReactiveAutoConfigurationjavadoc
MongoReactiveDataAutoConfigurationjavadoc
MongoReactiveRepositoriesAutoConfigurationjavadoc
MongoRepositoriesAutoConfigurationjavadoc
MultipartAutoConfigurationjavadoc
MustacheAutoConfigurationjavadoc
Neo4jAutoConfigurationjavadoc
Neo4jDataAutoConfigurationjavadoc
Neo4jReactiveDataAutoConfigurationjavadoc
Neo4jReactiveRepositoriesAutoConfigurationjavadoc
Neo4jRepositoriesAutoConfigurationjavadoc
NettyAutoConfigurationjavadoc
OAuth2ClientAutoConfigurationjavadoc
OAuth2ResourceServerAutoConfigurationjavadoc
PersistenceExceptionTranslationAutoConfigurationjavadoc
ProjectInfoAutoConfigurationjavadoc
PropertyPlaceholderAutoConfigurationjavadoc
QuartzAutoConfigurationjavadoc
R2dbcAutoConfigurationjavadoc
R2dbcDataAutoConfigurationjavadoc
R2dbcRepositoriesAutoConfigurationjavadoc
R2dbcTransactionManagerAutoConfigurationjavadoc
RSocketMessagingAutoConfigurationjavadoc
RSocketRequesterAutoConfigurationjavadoc
RSocketSecurityAutoConfigurationjavadoc
RSocketServerAutoConfigurationjavadoc
RSocketStrategiesAutoConfigurationjavadoc
RabbitAutoConfigurationjavadoc
ReactiveElasticsearchClientAutoConfigurationjavadoc
ReactiveElasticsearchRepositoriesAutoConfigurationjavadoc
ReactiveMultipartAutoConfigurationjavadoc
ReactiveOAuth2ClientAutoConfigurationjavadoc
ReactiveOAuth2ResourceServerAutoConfigurationjavadoc
ReactiveSecurityAutoConfigurationjavadoc
ReactiveUserDetailsServiceAutoConfigurationjavadoc
ReactiveWebServerFactoryAutoConfigurationjavadoc
RedisAutoConfigurationjavadoc
RedisReactiveAutoConfigurationjavadoc
RedisRepositoriesAutoConfigurationjavadoc
RepositoryRestMvcAutoConfigurationjavadoc
RestTemplateAutoConfigurationjavadoc
Saml2RelyingPartyAutoConfigurationjavadoc
SecurityAutoConfigurationjavadoc
SecurityFilterAutoConfigurationjavadoc
SendGridAutoConfigurationjavadoc
ServletWebServerFactoryAutoConfigurationjavadoc
SessionAutoConfigurationjavadoc
SpringApplicationAdminJmxAutoConfigurationjavadoc
SpringDataWebAutoConfigurationjavadoc
SqlInitializationAutoConfigurationjavadoc
TaskExecutionAutoConfigurationjavadoc
TaskSchedulingAutoConfigurationjavadoc
ThymeleafAutoConfigurationjavadoc
TransactionAutoConfigurationjavadoc
UserDetailsServiceAutoConfigurationjavadoc
ValidationAutoConfigurationjavadoc
WebClientAutoConfigurationjavadoc
WebFluxAutoConfigurationjavadoc
WebMvcAutoConfigurationjavadoc
WebServiceTemplateAutoConfigurationjavadoc
WebServicesAutoConfigurationjavadoc
WebSessionIdResolverAutoConfigurationjavadoc
WebSocketMessagingAutoConfigurationjavadoc
WebSocketReactiveAutoConfigurationjavadoc
WebSocketServletAutoConfigurationjavadoc
XADataSourceAutoConfigurationjavadoc
.C.2. spring-boot-actuator-autoconfigure

以下自动配置类来自spring-boot-actuator-autoconfigure模块:

自动配置类链接
AppOpticsMetricsExportAutoConfigurationjavadoc
AtlasMetricsExportAutoConfigurationjavadoc
AuditAutoConfigurationjavadoc
AuditEventsEndpointAutoConfigurationjavadoc
AvailabilityHealthContributorAutoConfigurationjavadoc
AvailabilityProbesAutoConfigurationjavadoc
BeansEndpointAutoConfigurationjavadoc
BraveAutoConfigurationjavadoc
CacheMetricsAutoConfigurationjavadoc
CachesEndpointAutoConfigurationjavadoc
CassandraHealthContributorAutoConfigurationjavadoc
CassandraReactiveHealthContributorAutoConfigurationjavadoc
CloudFoundryActuatorAutoConfigurationjavadoc
CompositeMeterRegistryAutoConfigurationjavadoc
ConditionsReportEndpointAutoConfigurationjavadoc
ConfigurationPropertiesReportEndpointAutoConfigurationjavadoc
ConnectionFactoryHealthContributorAutoConfigurationjavadoc
ConnectionPoolMetricsAutoConfigurationjavadoc
CouchbaseHealthContributorAutoConfigurationjavadoc
CouchbaseReactiveHealthContributorAutoConfigurationjavadoc
DataSourceHealthContributorAutoConfigurationjavadoc
DataSourcePoolMetricsAutoConfigurationjavadoc
DatadogMetricsExportAutoConfigurationjavadoc
DiskSpaceHealthContributorAutoConfigurationjavadoc
DynatraceMetricsExportAutoConfigurationjavadoc
ElasticMetricsExportAutoConfigurationjavadoc
ElasticSearchReactiveHealthContributorAutoConfigurationjavadoc
ElasticSearchRestHealthContributorAutoConfigurationjavadoc
EndpointAutoConfigurationjavadoc
EnvironmentEndpointAutoConfigurationjavadoc
FlywayEndpointAutoConfigurationjavadoc
GangliaMetricsExportAutoConfigurationjavadoc
GraphiteMetricsExportAutoConfigurationjavadoc
HazelcastHealthContributorAutoConfigurationjavadoc
HealthContributorAutoConfigurationjavadoc
HealthEndpointAutoConfigurationjavadoc
HeapDumpWebEndpointAutoConfigurationjavadoc
HibernateMetricsAutoConfigurationjavadoc
HttpClientMetricsAutoConfigurationjavadoc
HttpTraceAutoConfigurationjavadoc
HttpTraceEndpointAutoConfigurationjavadoc
HumioMetricsExportAutoConfigurationjavadoc
InfluxDbHealthContributorAutoConfigurationjavadoc
InfluxMetricsExportAutoConfigurationjavadoc
InfoContributorAutoConfigurationjavadoc
InfoEndpointAutoConfigurationjavadoc
IntegrationGraphEndpointAutoConfigurationjavadoc
JettyMetricsAutoConfigurationjavadoc
JmsHealthContributorAutoConfigurationjavadoc
JmxEndpointAutoConfigurationjavadoc
JmxMetricsExportAutoConfigurationjavadoc
JvmMetricsAutoConfigurationjavadoc
KafkaMetricsAutoConfigurationjavadoc
KairosMetricsExportAutoConfigurationjavadoc
LdapHealthContributorAutoConfigurationjavadoc
LettuceMetricsAutoConfigurationjavadoc
LiquibaseEndpointAutoConfigurationjavadoc
Log4J2MetricsAutoConfigurationjavadoc
LogFileWebEndpointAutoConfigurationjavadoc
LogbackMetricsAutoConfigurationjavadoc
LoggersEndpointAutoConfigurationjavadoc
MailHealthContributorAutoConfigurationjavadoc
ManagementContextAutoConfigurationjavadoc
ManagementWebSecurityAutoConfigurationjavadoc
MappingsEndpointAutoConfigurationjavadoc
MetricsAutoConfigurationjavadoc
MetricsEndpointAutoConfigurationjavadoc
MicrometerTracingAutoConfigurationjavadoc
MongoHealthContributorAutoConfigurationjavadoc
MongoMetricsAutoConfigurationjavadoc
MongoReactiveHealthContributorAutoConfigurationjavadoc
Neo4jHealthContributorAutoConfigurationjavadoc
NewRelicMetricsExportAutoConfigurationjavadoc
ObservationAutoConfigurationjavadoc
OpenTelemetryAutoConfigurationjavadoc
OtlpMetricsExportAutoConfigurationjavadoc
PrometheusMetricsExportAutoConfigurationjavadoc
QuartzEndpointAutoConfigurationjavadoc
RabbitHealthContributorAutoConfigurationjavadoc
RabbitMetricsAutoConfigurationjavadoc
ReactiveCloudFoundryActuatorAutoConfigurationjavadoc
ReactiveManagementContextAutoConfigurationjavadoc
ReactiveManagementWebSecurityAutoConfigurationjavadoc
RedisHealthContributorAutoConfigurationjavadoc
RedisReactiveHealthContributorAutoConfigurationjavadoc
RepositoryMetricsAutoConfigurationjavadoc
ScheduledTasksEndpointAutoConfigurationjavadoc
ServletManagementContextAutoConfigurationjavadoc
SessionsEndpointAutoConfigurationjavadoc
ShutdownEndpointAutoConfigurationjavadoc
SignalFxMetricsExportAutoConfigurationjavadoc
SimpleMetricsExportAutoConfigurationjavadoc
StackdriverMetricsExportAutoConfigurationjavadoc
StartupEndpointAutoConfigurationjavadoc
StartupTimeMetricsListenerAutoConfigurationjavadoc
StatsdMetricsExportAutoConfigurationjavadoc
SystemMetricsAutoConfigurationjavadoc
TaskExecutorMetricsAutoConfigurationjavadoc
ThreadDumpEndpointAutoConfigurationjavadoc
TomcatMetricsAutoConfigurationjavadoc
WavefrontMetricsExportAutoConfigurationjavadoc
WavefrontTracingAutoConfigurationjavadoc
WebEndpointAutoConfigurationjavadoc
WebFluxMetricsAutoConfigurationjavadoc
WebMvcMetricsAutoConfigurationjavadoc
ZipkinAutoConfigurationjavadoc
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/829143
推荐阅读
相关标签
  

闽ICP备14008679号