日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot 集成 druid 监控数据库报错 Failed to bind properties under ‘xxxx‘ to javax.sql.DataSource 解决(含配置源码)

發布時間:2024/10/6 javascript 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot 集成 druid 监控数据库报错 Failed to bind properties under ‘xxxx‘ to javax.sql.DataSource 解决(含配置源码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

What

Druid是一個JDBC組件,它包括三部分:
? DruidDriver 代理Driver,能夠提供基于Filter-Chain模式的插件體系。
? DruidDataSource 高效可管理的數據庫連接池。
? SQLParser

Why

? 可以監控數據庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對于線上分析數據庫訪問性能有幫助。
? 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴展性好的數據庫連接池。
? 數據庫密碼加密。直接把數據庫密碼寫在配置文件中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。
? SQL執行日志,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的數據庫訪問情況。
? 擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴展插件。

USE

1.依賴

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.21</version> </dependency> <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version> </dependency>

2.配置

spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8username: rootpassword: root# 數據源選擇type: com.alibaba.druid.pool.DruidDataSource# Spring Boot 默認是不注入這些屬性值的,需要自己綁定# 數據源專有配置initialSize: 5minIdle: 5maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: true#配置監控統計攔截的filters,stat:監控統計、log4j:日志記錄、wall:防御sql注入#如果允許時報錯 java.lang.ClassNotFoundException: org.apache.log4j.Priority#則導入 log4j 依賴即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4jfilters: stat,wall,log4jmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: trueconnectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

3.利用druid性能監控

@Configuration public class DruidConfig {@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource druidDataSource() {return new DruidDataSource();}@Beanpublic ServletRegistrationBean druidServlet() { //后臺監控ServletRegistrationBean<StatViewServlet> statViewServletRegistration = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");HashMap<String, String> initParameters = new HashMap<>(8);//druid web登錄驗證initParameters.put("loginUsername", "admin");initParameters.put("loginPassword", "123");//允許訪問initParameters.put("allow", "");//禁止訪問//initParameters.put("guest", "127.0.0.1");statViewServletRegistration.setInitParameters(initParameters);return statViewServletRegistration;}@Beanpublic FilterRegistrationBean filterRegistrationBean() { //filter攔截FilterRegistrationBean<WebStatFilter> webStatFilterRegistrationBean = new FilterRegistrationBean<>(new WebStatFilter());webStatFilterRegistrationBean.addUrlPatterns("/*");webStatFilterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*,*.html");return webStatFilterRegistrationBean;} }

啟動報錯:
Failed to bind properties under ‘spring.datasource’ to javax.sql.DataSource

2021-07-09 10:46:47.780 WARN 15072 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name 'druidDataSource': Could not bind properties to 'DataSource' : prefix=spring.datasource, ignoreInvalidFields=false, ignoreUnknownFields=true; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'spring.datasource' to javax.sql.DataSource 2021-07-09 10:46:47.781 INFO 15072 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]

原因是: filters: stat,wall,log4j 配置了log4j,去掉filters的log4j或在依賴里加入log4j即可解決。
4.druid Web監控
http://localhost:8080/druid/login.html 登錄后可查詢監控信息。

總結

以上是生活随笔為你收集整理的SpringBoot 集成 druid 监控数据库报错 Failed to bind properties under ‘xxxx‘ to javax.sql.DataSource 解决(含配置源码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。