91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot基于DRUID如何實現數據源監控

發布時間:2021-11-02 16:31:28 來源:億速云 閱讀:150 作者:小新 欄目:編程語言

小編給大家分享一下springboot基于DRUID如何實現數據源監控,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

隨著需求和技術的日益革新,spring boot框架是越來越流行,她也越來越多地出現在我們的項目中,當然最主要的原因還是因為spring boot構建項目實在是太爽了,構建方便,開發簡單,而且效率高。今天我們并不是來專門學習spring boot項目的,我們要講的是數據源的加密和監控,監控到好說,就是不監控也沒什么問題,但是數據源加密卻涉及到我們的系統安全。

對于平時的學習測試,我們在項目中配置數據庫明文密碼是沒什么問題的,因為我們的數據不重要,也就無所謂,但是在現實環境下的生產平臺,配置明文密碼極有可能會造成我們數據庫密碼泄露,最終導致我們的生產數據泄露,這也就體現了生產環境數據源加密的必要性。下面我們就來看看如何實現數據源加密吧。

創建spring boot項目

創建過程就不贅述了,下面是我的項目依賴:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.2.1.RELEASE</version>    <relativePath/> <!-- lookup parent from repository -->  </parent>  <groupId>io.githu.syske</groupId>  <artifactId>druid-datasouce-decrypt</artifactId>  <version>0.0.1-SNAPSHOT</version>  <name>druid-datasouce-decrypt</name>  <description>Demo project for Spring Boot</description>  <properties>    <java.version>1.8</java.version>  </properties>  <dependencies>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>      <groupId>org.mybatis.spring.boot</groupId>      <artifactId>mybatis-spring-boot-starter</artifactId>      <version>2.1.1</version>    </dependency>    <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <scope>runtime</scope>    </dependency>    <!-- 阿里巴巴druid -->    <dependency>      <groupId>com.alibaba</groupId>      <artifactId>druid-spring-boot-starter</artifactId>      <version>1.1.10</version>    </dependency>    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-test</artifactId>      <scope>test</scope>      <exclusions>        <exclusion>          <groupId>org.junit.vintage</groupId>          <artifactId>junit-vintage-engine</artifactId>        </exclusion>      </exclusions>    </dependency>  </dependencies>  <build>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>      </plugin>    </plugins>  </build></project>

如果你的數據庫是Oracle,那么你要把mysql的數據庫驅動替換成Oracle驅動

修改spring boot項目配置信息

server: port: 8083

我采用的是yaml的方式,然后啟動你的項目,因為沒有controller和其他的代碼,所以沒什么效果,但是項目可以正常啟動。

加密數據源密碼,創建publickey

這里沒什么好講的,我直接放代碼:

import org.junit.Test;/** * @program: druid-datasouce-decrypt * @description: * @author: liu yan * @create: 2019-12-02 18:34 */public class DBencrydtTest {  @Test  public void test() {    String[] args = {"root"};    try {      com.alibaba.druid.filter.config.ConfigTools.main(args);    } catch (Exception e) {    }    System.out.println();  }}

需要說明的是,args數組中放置的是密碼,直接運行上面的代碼,你會看到控制臺會打印如下信息:

privateKey:MIIBVAIBADANBgkqhkiFWERAERFrterfgdggE6AgEAAkEAqboz+iNXPv1jgKAhDW7W+L/NwqG6GDTo49BjmlMg3WxBg4w9h5RC3oRO40EOjL7+DtEBBlCZ6OHZfZWKh27FmwIDAQABAkA/azwQszPebX/IiAzRoCDjQYf4ucV3Vg3PUgZlm7okAbsXrxz2xrdnM8Er08YKm3vUOmWQmSvaOI3CqdrK1f2BAiEA4XbEkCOxWVxbDLihyudClvrgLbZZyODlx5E2phn4gXMCIQDAtvMeJiXlGQBxFr/ci0r99FiYUeag/ZFwOjyhIzWBOQIgYg3bEqzTNn/aAUBS7QGCjlLxKDBD//7/L7nRwI9O6k0CIQCdBnUiY8MM4UpS206JzZXVR3vI4TMiinovD8THJ4E5QQIgRM1QlD1PG5YTxBxZMrLm2weBxsqXhvdJuTc1GXmoUxg=publicKey:MFwwDQYJKoZIhvcewrwerfrrgfg43534M/ojVz79Y4CgIQ1u1vi/zcKhuhg06OPQY5pTIN1sQYOMPYeEQt6ETuNBDoy+/g7RAQZQmejh3X2ViodexZsCAwEAAQ==password:O9JBjc86r9IhEoIE6jevJtgsgCXZAKCWH2UtO0tbG62zqIK5G5qJOCm1u9ju+lnno15vmq+TO5WqEWGzvkDNGg==

privateKey是你的私鑰,publicKey是公鑰,password就是你加密后的密碼。我們用到的配置有兩個,一個是公鑰,一個是密碼,配置公鑰的原因是要通過公鑰進行解密。將如上信息保存好,后面再spring boot的配置中要用到。

增加數據源相關配置

增加數據源配置信息:

# 阿里巴巴druid數據源配置spring: datasource: # 數據源驅動類型,這里是druid  type: com.alibaba.druid.pool.DruidDataSource  # sql腳本編碼  sql-script-encoding: utf-8  druid:  # 驅動的類名   driver-class-name: com.mysql.cj.jdbc.Driver   # 數據庫連接密碼   username: root   # 數據庫地址   url: jdbc:mysql://127.0.0.1:3307/spring?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai   # 這里配置的是前面我們生成的密碼   password: Y2YOft/vPjw/JFPkevqZZKi8pCHu5ambR2ivSxgipTbL76pOoxNw3Un5Hcarbe9AqUImr+wS7YI6TjJZOVYjzA==   # 這里設置連接配置,key配置的是我們前面生成的publicKey   connection-properties: config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJI/xqbyvpVttxfAKulKeSTIb7tZAGaFcPyTnE2r7AHTQ8kOnqKXDda4u59umt9XBFxi7db28KxeVooB138zuRUCAwEAAQ==   filter:    config:    # 啟用druid的攔截器     enabled: true   # 連接池的配置信息   # 初始化時建立物理連接的個數   initial-size: 3   # 連接池最小連接數   min-idle: 3   # 連接池最大連接數   max-active: 20   # 獲取連接時最大等待時間,單位毫秒   max-wait: 60000   # 申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。   test-while-idle: true   # 既作為檢測的間隔時間又作為testWhileIdel執行的依據   time-between-connect-error-millis: 60000   # 銷毀線程時檢測當前連接的最后活動時間和當前時間差大于該值時,關閉當前連接   min-evictable-idle-time-millis: 30000   # 用來檢測連接是否有效的sql 必須是一個查詢語句   # mysql中為 select 'x'   # oracle中為 select 1 from dual   validationQuery: select 'x'   # 申請連接時會執行validationQuery檢測連接是否有效,開啟會降低性能,默認為true   test-on-borrow: false   # 歸還連接時會執行validationQuery檢測連接是否有效,開啟會降低性能,默認為true   test-on-return: false   # 是否緩存preparedStatement,mysql5.5+建議開啟   pool-prepared-statements: true   # 當值大于0時poolPreparedStatements會自動修改為true   max-pool-prepared-statement-per-connection-size: 20   # 合并多個DruidDataSource的監控數據   use-global-data-source-stat: false   # 配置擴展插件   #監控統計攔截的filters   filters: stat,wall,slf4j   # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄   connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000   # 定時輸出統計信息到日志中,并每次輸出日志會導致清零(reset)連接池相關的計數器。   time-between-log-stats-millis: 300000   # 配置DruidStatFilter   web-stat-filter:    enabled: true    url-pattern: '/*'    exclusions: '*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*'   # 配置DruidStatViewServlet   stat-view-servlet:    # 是否啟用StatViewServlet(監控頁面)默認值為false(考慮到安全問題默認并未啟動,如需啟用建議設置密碼或白名單以保障安全)    enabled: true    url-pattern: '/druid/*'    # IP白名單(沒有配置或者為空,則允許所有訪問)    allow: 127.0.0.1,192.168.0.1    # IP黑名單 (存在共同時,deny優先于allow)    deny: 192.168.0.128    # 禁用HTML頁面上的“Reset All”功能    reset-enable: false    # 登錄名    login-username: admin    # 登錄密碼    login-password: admin

上面備注已經很詳細了,這里要強調的有兩個地方,一個是key那里配置的是publicKey,不要配錯了,一個是要注意 validationQuery這里mysql和Oracle是不一樣的,當然你要可以移除該配置。

上面還加了數據源監控的配置信息,注釋已經夠詳細了。以上配置完成后就可以啟動你的項目了,如果沒有報錯,那說明你的配置沒有問題,如果啟動的時候報錯,說明你的配置有問題。

項目啟動后,要進入druid數據源監控頁面,只需要輸入如下你的項目地址+/druid即可,比如我的地址:

http://localhost:8083/druid

然后輸入你在配置信息里面加入的用戶名和密碼,你就可以看見監控頁面了,如果要查看sql相關監控信息,你還要完善自己的項目,引入mybatis,配置你的sql。

以上是“springboot基于DRUID如何實現數據源監控”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安西县| 清原| 基隆市| 阳西县| 青神县| 和平县| 正安县| 常州市| 临沧市| 茌平县| 六盘水市| 翁源县| 禄劝| 肥城市| 南充市| 大城县| 龙海市| 武陟县| 双江| 故城县| 焉耆| 鄂托克旗| 罗江县| 独山县| 师宗县| 安龙县| 冕宁县| 清原| 客服| 疏附县| 舟曲县| 澄迈县| 高要市| 建瓯市| 时尚| 通渭县| 永定县| 肃北| 房产| 昆山市| 铜川市|