1. pom.xml文件引入相關jar包
<!-- mysql連接 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.48</version> </dependency> <!-- druid連接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.20</version> </dependency>
如果引入
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency>
會有警告,提示:Cannot resolve configuration property 'spring.datasource.XXX'。
網上都說沒什么影響,但是終歸不美觀,不優雅。
2. application.xml配置
# 端口 server.port=12116 # 數據庫訪問配置 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=root spring.datasource.password=root spring.datasource.url=jdbc:mysql://localhost:3306/wxsd-lantern-festival?useUnicode=true&characterEncoding=utf-8&useSSL=false # innoDB引擎 spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect # 指定目標數據庫 spring.jpa.database=mysql # 指定DDL mode (none, validate, update, create, create-drop)【慎用】 #spring.jpa.hibernate.ddl-auto=none # 無修改命名 spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl # 遇到大寫字母 加”_”的命名 #spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy # 是否打印sql spring.jpa.show-sql=true
# 默認為true,可以在視圖渲染期間執行數據庫查詢
spring.jpa.open-in-view=false
# 下面為連接池的補充設置,應用到上面所有數據源中
# 主數據源,默認的
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 初始化大小,最小,最大
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
# 配置獲取連接等待超時的時間
spring.datasource.druid.max-wait=60000
# 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 配置一個連接在池中最小生存的時間,單位是毫秒
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
# 打開PSCache,並且指定每個連接上PSCache的大小
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
# 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用於防火牆
spring.datasource.druid.filters=stat,wall,slf4j
# 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合並多個DruidDataSource的監控數據
#spring.datasource.druid.use-global-data-source-stat=true
目前沒有配置redis,后期有需要再加。
2020-07-13 添加redis配置
1. pom.xml文件引入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>
2. application.xml配置
# redis配置
spring.redis.host=localhost
spring.redis.port=6379
# redis數據庫索引(默認為0)
spring.redis.password=6369
# redis數據庫索引(默認為0)
spring.redis.database=0
# 連接池最大阻塞等待時間(使用負值表示沒有限制)
spring.redis.lettuce.pool.max-wait=30000
# 連接池最大連接數(使用負值表示沒有限制)
spring.redis.lettuce.pool.max-active=100
# 連接池中的最大空閑連接
spring.redis.lettuce.pool.max-idle=20
# 連接池中的最小空閑連接
spring.redis.lettuce.pool.min-idle=0
# 連接超時時間(毫秒)
spring.redis.timeout=5000
# 禁用redis的repositories
spring.data.redis.repositories.enabled=false
- 為什么要加 commons-pool2 依賴呢?
- 因為redis在1.x版本的時候,默認使用的是Jedis;在2.x版本中,默認是使用lettuce。
- 他們的區別是什么呢?
- Jedis和Lettuce都是Redis Client;
- Jedis 是直連模式,在多個線程間共享一個 Jedis 實例時是線程不安全的。如果想要在多線程環境下使用 Jedis,需要使用連接池。每個線程都去拿Jedis 實例,當連接數量增多時,物理連接成本就較高了;
- Lettuce 是基於 netty 的,netty 是一個多線程、事件驅動的 I/O 框架,連接實例可以在多個線程間共享,通過異步的方式可以讓我們更好的利用系統資源,而不用浪費線程等待網絡或磁盤I/O;
對了,這篇文章的配置介紹挺全的,附上鏈接 https://www.cnblogs.com/toughzcf/p/9835867.html
胸藏文墨懷若谷,腹有詩書氣自華。