【SpringBoot】application.properties配置文件詳解


本文將詳細介紹SpringCloud中配置中心或者啟動配置application.properties文件

如下配置文件:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://x.x.x.x:3306/databasename?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull 
spring.datasource.username=uname
spring.datasource.password=pword
spring.datasource.driverClassName=com.mysql.jdbc.Driver

# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=150
# 配置獲取連接等待超時的時間
spring.datasource.maxWait=60000
# 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一個連接在池中最小生存的時間,單位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打開PSCache,並且指定每個連接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用於防火牆
spring.datasource.filters=stat,log4j
# 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合並多個DruidDataSource的監控數據
#spring.datasource.useGlobalDataSourceStat=true

#redis配置 spring.redis.password=redispass spring.redis.port=6379 spring.redis.host=redis.${DOMAIN} spring.redis.expire=10 spring.redis.pool.max-active=1024 spring.redis.pool.max-wait=10000 spring.redis.pool.max-idle=200 spring.redis.pool.min-idle=50 spring.redis.timeout=10000 spring.redis.database=1 dialect=mysql hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000 #ribbon.ReadTimeout=120000 #ribbon.ConnectTimeout=120000 #切面日志開關,aspect.shortcircuit=true表示關閉,aspect.shortcircuit=false表示開啟,默認請配置為false,開啟日志切面 aspect.shortcircuit=false
#上傳文件的最大單個文件大小 spring.http.multipart.maxFileSize=5MB
#日志輸出級別 logging.level.com.baiwang.xxx=DEBUG

 

一、數據源配置 spring.datasource.XXX

 

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://x.x.x.x:3306/databasename?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull spring.datasource.username=uname spring.datasource.password=pword
spring.datasource.driverClassName=com.mysql.jdbc.Driver
#以下為orcle
#spring.datasource.url=jdbc:oracle:thin:@oracle1.test.xxx.com:1521:testdb1
#spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver

        ①首先,Spring Boot默認的數據源是org.apache.tomcat.jdbc.pool.DataSource

        在實際開發中我們可能需要使用我們比較熟悉的數據源或者性能比比較高的數據源,比如Druid,那么很自然的我們就不能使用默認的數據源,這時候

 spring.datasource.type就誕生了。

         springboot對該屬性的支持情況:1.2版本不支持,1.3版本支持1.4.0版本不支持1.4.1重新支持

        ②其次,Druid是Java語言中最好的數據庫連接池,並且能夠提供強大的監控和擴展功能。

   業界把 Druid 和 HikariCP 做對比后,雖說 HikariCP 的性能比 Druid 高,但是因為 Druid 包括很多維度的統計和分析功能,所以這也是大家都選擇使用它的原因。

 

        ③下面來說明如何在 Spring Boot 中配置使用Druid

             1)添加Maven依賴 (或jar包)

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.20</version>
        </dependency>

               2)配置數據源相關信息

# 數據庫訪問配置
# 主數據源,默認的
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
# 下面為連接池的補充設置,應用到上面所有數據源中
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置獲取連接等待超時的時間
spring.datasource.maxWait=60000
# 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一個連接在池中最小生存的時間,單位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打開PSCache,並且指定每個連接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用於防火牆
spring.datasource.filters=stat,wall,log4j
# 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合並多個DruidDataSource的監控數據
#spring.datasource.useGlobalDataSourceStat=true

        3)這時候啟動應用就可以看到看到打印信息就是使用我們配置的數據源了:

[main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited

        4)數據庫訪問方式介紹

             ?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull

             ?useUnicode=true&characterEncoding=utf-8&useSSL=false

             如上配置示例:

useUnicode=true&characterEncoding=UTF-8
這個代表允許用戶自己設定數據庫編碼,設置為UTF-8
useOldAliasMetadataBehavior=true
這個代表數據庫里面允許有別名
allowMultiQueries=true
1)可以在sql語句后攜帶分號,實現多語句執行。
2)可以執行批處理,同時發出多個SQL語句。
zeroDateTimeBehavior=convertToNull
日期類型由於誤傳0000-00-00(這時默認拋出
java.sql.SQLException異常),轉為NULL代替異常處理
useSSL=false
MySQL在高版本需要指明是否進行SSL連接
示例:https://www.cnblogs.com/cheng2839/p/13596025.html

 

   SSL協議提供服務主要:
       1)認證用戶服務器,確保數據發送到正確的服務器;    .
       2)加密數據,防止數據傳輸途中被竊取使用;
       3)維護數據完整性,驗證數據在傳輸過程中是否丟失;
   當前支持SSL協議兩層:
   	 SSL記錄協議(SSL Record Protocol):建立靠傳輸協議(TCP)高層協議提供數據封裝、壓縮、加密等基本功能支持
	 SSL握手協議(SSL Handshake Protocol):建立SSL記錄協議用於實際數據傳輸始前通訊雙進行身份認證、協商加密算法、 交換加密密鑰等。

 

--------------------------------------------------------------------End-------------------------------------------------------------------------

 


免責聲明!

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



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