配置文件application.properties參數詳解


springboot提供了許多啟動器starter,大部分的啟動器都有配置屬性,這些配置屬性一般可以在這里找到:

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

application.properties

# 這些屬性是否生效取決於對應的組件是否聲明為 Spring 應用程序上下文里的 Bean(基本是自動配置的),
# 為一個不生效的組件設置屬性是沒有用的。

################ 文件上傳 ################
# 開啟上傳支持, 默認是true
spring.servlet.multipart.enabled=true
# 最大文件大小, 單位MB, 默認是1MB
spring.servlet.multipart.max-file-size=1MB
# 最大請求大小, 單位MB, 默認是10MB
spring.servlet.multipart.max-request-size=10MB
# 文件上傳位置
spring.servlet.multipart.location=/upload
# 大於該值的文件會被寫到磁盤上, 單位B, 默認是0B
spring.servlet.multipart.file-size-threshold=0B

################ 服務器配置 ################
# 服務器地址
server.address=127.0.0.1
# 端口號, 默認是8080
server.port=8080
# 應用上下文路徑
server.servlet.context-path=/appContext
# servlet 上下文參數
# server.servlet.context-parameters.[param name] = [param value]
server.servlet.context-parameters.email = lin@m

################ mvc配置 ################
# 異步請求處理超時前的等待時間(單位為毫秒)。
# 如果沒有設置該屬性,則使用底層實現 的默認超時時間,
# 比如,Tomcat 上使用 Servlet 3 時超時時間為 10 秒
spring.mvc.async.request-timeout=
# 要使用的日期格式
spring.mvc.date-format=dd/MM/yyyy
# 開啟 favicon.ico 的解析
spring.mvc.favicon.enabled=true
# 在重定向的場景下,是否要忽略“默認”模型對象的內容, 默認是true
spring.mvc.ignore-default-model-on-redirect=true
# 要使用的地域配置
spring.mvc.locale=zh_CN
# 消息代碼格式
spring.mvc.message-codes-resolver-format=prefix_error_code
# Spring MVC 視圖前綴
spring.mvc.view.prefix=
# Spring MVC 視圖后綴
spring.mvc.view.suffix=

################ jsp-servlet配置 ################
# 針對 jsp 使用的 Servlet 類名, 默認是 org.apache.jasper.servlet.JspServlet
# 需要tomcat-embed-jasper依賴
server.servlet.jsp.class-name=org.apache.jasper.servlet.JspServlet
# JspServlet 是否要注冊到內嵌的 Servlet 容器里, 默認是true
server.servlet.jsp.registered=true
# Jsp Servlet 初始化參數
# server.servlet.jsp.init-parameters.[param name] = [param value]
server.servlet.jsp.init-parameters.userName = myName

################ Session配置 ################
# 會話 Cookie 的域
server.servlet.session.cookie.domain=www.lin.com
# Cookie 注釋
server.servlet.session.cookie.comment=購物信息
# Cookie 最大保存時間, 單位s
server.servlet.session.cookie.max-age=10s
# Cookie 名稱
server.servlet.session.cookie.name=carts
# Cookie 的訪問路徑
server.servlet.session.cookie.path=/page/
# Cookie安全性設置, true表示cookie無法通過document.cookie讀取到cookie信息,這樣能有效的防止XSS攻擊
server.servlet.session.cookie.http-only=true
# Cookie安全性設置, true表示cookie只能用https協議發送給服務器,用http協議是不發送的
server.servlet.session.cookie.secure=true
# Session過期時間, 默認是30分鍾
server.servlet.session.timeout=30m
# Session是否持久化, 默認是false
server.servlet.session.persistent=false
# 本地的session數據存放地址
server.servlet.session.store-dir=
# Session的追蹤模式
# SessionTrackingMode下有三種可選值:COOKIE, URL, SSL
server.servlet.session.tracking-modes = COOKIE, URL

################ Tomcat配置 ################
# 創建日志文件的目錄, 默認是logs
server.tomcat.accesslog.directory=logs
# 是否開啟訪問日志, 默認是false
server.tomcat.accesslog.enabled=false
# 訪問日志的格式, 默認是common
server.tomcat.accesslog.pattern=common
# 日志名前綴, 默認是access_log
server.tomcat.accesslog.prefix=access_log
# 日志后綴名, 默認是.log
server.tomcat.accesslog.suffix=.log
# 用來解碼 URI 的字符編碼, 默認是UTF-8
server.tomcat.uri-encoding=UTF-8
# 最小備用線程數,tomcat啟動時的初始化的線程數。
server.tomcat.min-spare-threads=10
# tomcat可創建的最大的線程數,每一個線程處理一個請求,超過這個請求數后,
# 客戶端請求只能排隊,等有線程釋放才能處理。
server.tomcat.max-threads=200
# 最長等待時間,如果沒有數據進來,等待一段時間后斷開連接,釋放線程。
server.tomcat.connection-timeout=5000

################ Cache配置 ################
# 如果底層緩存管理器支持緩存名的話,可以在這里指定要創建的緩存名列表,用逗號分隔。
# 通常這會禁用運行時創建其他額外緩存的能力。
spring.cache.cache-names=
# 用來初始化 EhCache 的配置文件位置
spring.cache.ehcache.config=classpath:ehcache.xml
# 緩存類型,默認根據環境自動檢測
spring.cache.type=ehcache

################ data配置 ################
# 開啟 JPA 倉庫, 默認是true
spring.data.jpa.repositories.enabled=true

###=== spring.data.mongodb ===###
# 身份認證數據庫名
spring.data.mongodb.authentication-database=
# 數據庫名
spring.data.mongodb.database=
# 要使用的 FieldNamingStrategy 的全限定名
spring.data.mongodb.field-naming-strategy=org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategy
# GridFS 數據庫名稱
spring.data.mongodb.grid-fs-database=
# MongoDB 服務器地址
spring.data.mongodb.host=
# 端口號
spring.data.mongodb.port=
# MongoDB 賬號
spring.data.mongodb.username=
# MongoDB 密碼
spring.data.mongodb.password=
spring.data.mongodb.repositories.type=auto
# Mongo 數據庫 URI。設置了該屬性后就主機和端口號會被忽略。
# (默認值: mongodb:// localhost/test)
spring.data.mongodb.uri=mongodb://localhost/test

###=== spring.data.rest ===###
# 用於發布倉庫資源的基本路徑
spring.data.rest.base-path=
# 分頁數據的默認頁大小
spring.data.rest.default-page-size=
# 最大分頁大小
spring.data.rest.max-page-size=
# 用於標識一次返回多少記錄的 URL 查詢字符串參數名。默認值:size
spring.data.rest.limit-param-name=
# URL 查詢字符串參數的名稱,用來標識返回哪一頁。默認值:page
spring.data.rest.page-param-name=
# 在創建實體后是否返回一個響應體
spring.data.rest.return-body-on-create=
# 在更新實體后是否返回一個響應體
spring.data.rest.return-body-on-update=
# URL 查詢字符串參數的名稱,用來表示結果排序的方向。
spring.data.rest.sort-param-name=

###=== spring.data.solr ===###
# Solr 的主機地址。如果設置了 zk-host 則忽略該屬性。
spring.data.solr.host=http://127.0.0.1:8983/solr
# 開啟 solr 倉庫, 默認是true
spring.data.solr.repositories.enabled=true
# 主機地址, 格式為HOST:PORT
spring.data.solr.zk-host=

################ DataSource配置 ################
# 數據庫的 JDBC URL
spring.datasource.url=
# 數據庫的登錄密碼
spring.datasource.password=
# 數據庫的登錄用戶名
spring.datasource.username=
# JDBC 驅動的全限定類名。默認根據 URL 自動檢測
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 數據源名稱
spring.datasource.name=
# DML的SQL文件位置
spring.datasource.data=classpath:all.sql
# 執行DML操作的用戶名
spring.datasource.data-username=
# 執行DML操作的密碼
spring.datasource.data-password=
# 數據源類型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 初始化數據庫時發生錯誤是否終止
spring.datasource.continue-on-error=true
# 是否隨機生成數據源名稱
spring.datasource.generate-unique-name=true
# Schema(數據定義語言,Data Definition Language,DDL)腳本資源的引用。
spring.datasource.schema=classpath:create.sql
# SQL 初始化腳本里的語句分割符。默認是;
spring.datasource.separator=;
# 執行DDL操作的用戶名
spring.datasource.schema-username=
# 執行DDL操作的密碼
spring.datasource.schema-password=
# SQL 腳本的編碼
spring.datasource.sql-script-encoding=UTF-8
# Platform to use in the DDL or DML scripts
# (such as schema-${platform}.sql or data-${platform}.sql)
spring.datasource.platform=all
# JNDI location of the datasource. Class, url, username & password are ignored when set
spring.datasource.jndi-name=
# Whether to enable JMX support (if provided by the underlying pool)
# 默認是false
spring.datasource.jmx-enabled=false

###=== hikari datasource配置 ===###
# 指定必須保持連接的最小值
spring.datasource.hikari.minimum-idle=
# 數據庫密碼
spring.datasource.hikari.password=
# 數據庫用戶名
spring.datasource.hikari.username=
# 指定連接池名字
spring.datasource.hikari.pool-name=
# 更新操作是否自動提交
spring.datasource.hikari.auto-commit=true
# 指定數據源的全限定名
spring.datasource.hikari.data-source-class-name=
# 指定driver的類名,默認從jdbc url中自動探測
spring.datasource.hikari.driver-class-name=
# 指定JDBC URL
spring.datasource.hikari.jdbc-url=
# 連接池中的連接能保持閑置狀態的最長時間,單位為毫秒
spring.datasource.hikari.idle-timeout=
# 指定連接的超時時間,毫秒單位
spring.datasource.hikari.connection-timeout=
# 指定連接池最大的連接數,包括使用中的和空閑的連接
spring.datasource.hikari.maximum-pool-size=
# 使用Hikari connection pool時,多少毫秒檢測一次連接泄露
spring.datasource.hikari.leak-detection-threshold=
# 指定校驗連接合法性執行的sql語句
spring.datasource.hikari.connection-test-query=
# 連接的默認事務隔離級別
spring.datasource.hikari.transaction-isolation=
# 在連接驗證失敗前等待的超時時間,單位為秒
spring.datasource.hikari.validation-timeout=
# 是否允許池暫停(pool suspension)。在開啟池暫停后會有性能會受到一定影響,
# 除非你真的需要這個功能(例如在冗余的系統下),否則不要開啟它。
spring.datasource.hikari.allow-pool-suspension=true
# 默認的 Catalog 名稱
spring.datasource.hikari.catalog=
# 在所有新連接創建時都會執行的 SQL 語句,該語句會在連接加入連接池前執行
spring.datasource.hikari.connection-init-sql=
# 指定jndi的地址
spring.datasource.hikari.data-source-j-n-d-i=
# 使用Hikari connection pool時,指定要設置的屬性
# spring.datasource.hikari.data-source-properties.[key]
spring.datasource.hikari.data-source-properties.keyp=aaa
# 使用Hikari connection pool時,在心跳檢查時傳遞的屬性
# spring.datasource.hikari.health-check-properties.[key]
spring.datasource.hikari.health-check-properties.loopv=123
spring.datasource.hikari.health-check-registry=
# 初始化失敗的超時時間
spring.datasource.hikari.initialization-fail-timeout=
# 指定內部查詢是否要被隔離
spring.datasource.hikari.isolate-internal-queries=true
# 指定連接數據庫的超時時間
spring.datasource.hikari.login-timeout=
# 指定連接池中連接的最大生存時間,毫秒單位
spring.datasource.hikari.max-lifetime=
spring.datasource.hikari.metric-registry=
spring.datasource.hikari.metrics-tracker-factory=
# 當使用Hikari connection pool時,是否標記數據源只讀
spring.datasource.hikari.read-only=
# 指定Hikari connection pool是否注冊JMX MBeans
spring.datasource.hikari.register-mbeans=
spring.datasource.hikari.scheduled-executor=
spring.datasource.hikari.schema=

################ FreeMarker配置 ################
# HttpServletRequest 的屬性是否允許覆蓋(隱藏)控制器生成的同名模型屬性
spring.freemarker.allow-request-override=
# HttpSession 的屬性是否允許覆蓋(隱藏)控制器生成的同名模型屬性
spring.freemarker.allow-session-override=
# 開啟模板緩存
spring.freemarker.cache=false
# 模板編碼, 默認是UTF-8
spring.freemarker.charset=UTF-8
# 檢查模板位置是否存在
spring.freemarker.check-template-location=true
# 開啟 FreeMarker 的 MVC 視圖解析
spring.freemarker.enabled=true

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

################ Http配置 ################
# HTTP 消息轉換時優先使用 JSON 映射器
spring.http.converters.preferred-json-mapper=jackson
# HTTP 請求和響應的字符集。如果沒有顯式地指定 Content-Type 頭,則將該屬性值作為 這個頭的值
spring.http.encoding.charset=UTF-8
# 開啟 HTTP 編碼支持, 默認是true
spring.http.encoding.enabled=true
# 強制將 HTTP 請求和響應編碼為所配置的字符集, 默認是true
spring.http.encoding.force=true

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

################ Jpa配置 ################
# 要操作的目標數據庫,默認自動檢測
spring.jpa.database=mysql
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
# 啟動時是否要初始化 Schema
spring.jpa.generate-ddl=true
# hibernate. hbm2ddl.auto 屬性的一個快捷方式。
# 在使用嵌入式數據庫時,默認為 create-drop , 其他情況下默認為 none 。
spring.jpa.hibernate.ddl-auto=update
# 命名策略的全限定類名
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
# 注冊 OpenEntityManagerInViewInterceptor, 在請求的整個處理過程中,
# 將一個 JPA EntityManager 綁定到線程上。
spring.jpa.open-in-view=true
spring.jpa.mapping-resources=
# JPA 提供方要設置的額外原生屬性
# spring.jpa.properties.[key]
# 打開 SQL 語句日志
spring.jpa.show-sql=true
spring.jpa.hibernate.use-new-id-generator-mappings=true
################ mail配置 ################

# 默認的 MimeMessage 編碼
spring.mail.default-encoding=UTF-8
# SMTP 服務器主機地址
spring.mail.host=
# SMTP 服務器的登錄密碼
spring.mail.password=
# SMTP 服務器的登錄用戶名
spring.mail.username=
# SMTP 服務器的端口號
spring.mail.port=
# 附加的 JavaMail 會話屬性
# spring.mail.properties.[key]
# SMTP 服務器用到的協議, 默認是smtp
spring.mail.protocol=smtp
# 在啟動時測試郵件服務器是否可用
spring.mail.test-connection=true

這里對server.tomcat進行解釋:

  • 前綴為server的配置項,對應的配置類為org.springframework.boot.autoconfigure.web.ServerProperties,ServerProperties類中有一個內部類Tomcat,對應前綴為server.tomcat的配置項。
  • 項目啟動時,這些配置會被set到org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory類中(引入spring-boot-starter-web依賴,會自動引入spring-boot-starter-tomcat,就是說tomcat是系統默認的容器,所以會自動初始化),之后TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer()創建並啟動Tomcat容器實例。
  • Tomcat內部使用的是java.util.concurrent.ThreadPoolExecutor線程池,容器啟動時會在org.apache.tomcat.util.net.AbstractEndpoint.createExecutor()這里創建線程池,所以其中最大最小線程數、線程創建、銷毀和分配的策略其實都是ThreadPoolExecutor的特性。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM