欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot配置 Druid 三種方式(包括純配置文件配置)

 更新時(shí)間:2021年10月19日 16:47:32   作者:走在一線的碼農(nóng)  
本文給大家分享在項(xiàng)目中用純 YML(application.yml 或者 application.properties)文件、Java 代碼配置 Bean 和注解三種方式配置 Alibaba Druid 用于監(jiān)控或者查看 SQL 狀況的相關(guān)知識(shí),感興趣的朋友一起看看吧

記錄一下在項(xiàng)目中用純 YML(application.yml 或者 application.properties)文件、Java 代碼配置 Bean 和注解三種方式配置 Alibaba Druid 用于監(jiān)控或者查看 SQL 狀況:

1. 純配置文件 .yml 或者 .properties

(1)pom.xml 添加相關(guān)依賴

<!-- SPRINGBOOT WEB -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- SPRINGBOOT DRUID -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        
        <!-- SPRINGBOOT JDBC -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- MYSQL -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>${mysql-connector-java.version}</scope>
        </dependency>
        
        <!-- LOG4J -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
            <scope>compile</scope>
        </dependency>

(2)配置application.yml 或者 application.properties 文件,本次配置文件為application.yml

spring:
  # 數(shù)據(jù)源配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource   # MYSQL 5 驅(qū)動(dòng):com.mysql.jdbc.Driver,MYSQL 6+ 驅(qū)動(dòng):com.mysql.cj.jdbc.Driver
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: 123456
    # 連接池配置
    druid:
      # 初始化大小,最小,最大
      initial-size: 5
      min-idle: 5
      max-active: 20
      # 配置獲取連接等待超時(shí)的時(shí)間
      max-wait: 60000
      # 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一個(gè)連接在池中最小生存時(shí)間
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1 FROM sys_user
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # 打開 PSCache,并且指定每個(gè)連接上 PSCache 的大小
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # 配置監(jiān)控統(tǒng)計(jì)攔截的 Filter,去掉后監(jiān)控界面 SQL 無法統(tǒng)計(jì),wall 用于防火墻
      filters: stat,wall,log4j
      # 通過 connection-properties 屬性打開 mergeSql 功能;慢 SQL 記錄
      connection-properties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      # 配置 DruidStatFilter
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
      # 配置 DruidStatViewServlet
      stat-view-servlet:
        url-pattern: /druid/*
        # IP 白名單,沒有配置或者為空,則允許所有訪問
        allow: 127.0.0.1
        # IP 黑名單,若白名單也存在,則優(yōu)先使用
        deny: 192.168.31.253
        # 禁用 HTML 中 Reset All 按鈕
        reset-enable: false
        # 登錄用戶名/密碼
        login-username: root
        login-password: 123

(3)啟動(dòng) SpringBoot 項(xiàng)目訪問地址http://localhost:8080/druid/login.html進(jìn)行登錄,若出現(xiàn)一下界面則配置成功

2.Java 代碼配置 Bean

(1)pom.xml 依賴

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

(2)在配置文件 application.yml 中添加 Druid 配置

spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        # 數(shù)據(jù)源的其他配置
        initialSize: 5
        minIdle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        # 配置監(jiān)控統(tǒng)計(jì)攔截的 filters,去掉后監(jiān)控界面 sql 無法統(tǒng)計(jì),'wall'用于防火墻
        filters: stat,wall,log4j
        maxPoolPreparedStatementPerConnectionSize: 20
        useGlobalDataSourceStat: true
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

(3)添加 DruidConfig.java 配置文件

import javax.servlet.Filter;
import javax.servlet.Servlet;
import javax.sql.DataSource;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;

@Configuration
public class DruidConfig {

    @Bean
    // 將所有前綴為spring.datasource下的配置項(xiàng)都加載DataSource中
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }

    @Bean
    public ServletRegistrationBean<Servlet> druidServlet() {
        // 進(jìn)行 druid 監(jiān)控的配置處理
        ServletRegistrationBean<Servlet> srb = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/**");
        // 白名單
        srb.addInitParameter("allow", "127.0.0.1");
        // 黑名單
        srb.addInitParameter("deny", "192.168.31.253");
        // 用戶名
        srb.addInitParameter("loginUsername", "root");
        // 密碼
        srb.addInitParameter("loginPassword", "root");
        // 是否可以重置數(shù)據(jù)源
        srb.addInitParameter("resetEnable", "false");
        return srb;
    }
    
    @Bean
    public FilterRegistrationBean<Filter> filterRegistrationBean() {
        FilterRegistrationBean<Filter> frb = new FilterRegistrationBean<>();
        frb.setFilter(new WebStatFilter());
        // 所有請求進(jìn)行監(jiān)控處理
        frb.addUrlPatterns("/*");
        // 排除名單
        frb.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");
        return frb;
    }

}

(4)啟動(dòng) SpringBoot 項(xiàng)目訪問地址http://localhost:8080/druid/login.html進(jìn)行查看登錄

3.注解

(1)pom.xml 文件中添加 Druid 依賴(同方式二)

(2)配置文件添加信息(同方式二)

(3)配置 WebServlet

import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;

import com.alibaba.druid.support.http.StatViewServlet;
@WebServlet(urlPatterns = "/druid/*", 
    initParams={
            @WebInitParam(name="allow",value="192.168.16.110,127.0.0.1"),// IP白名單 (沒有配置或者為空,則允許所有訪問)
            @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名單 (存在共同時(shí),deny優(yōu)先于allow)
            @WebInitParam(name="loginUsername",value="admin"),// 用戶名
            @WebInitParam(name="loginPassword",value="admin"),// 密碼
            @WebInitParam(name="resetEnable",value="false")// 禁用HTML頁面上的“Reset All”功能
    })
public class DruidServlet extends StatViewServlet {

    private static final long serialVersionUID = 1L;

}

(4)配置 WebFilter

import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;

import com.alibaba.druid.support.http.WebStatFilter;

@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
initParams={
    @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略資源
})
public class DruidFilter extends WebStatFilter {

}

(5)配置啟動(dòng)文件SpringBootApplication 用于掃描我們配置的類

添加 @ServletComponentScan 注解進(jìn)行掃描

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@SpringBootApplication
@ServletComponentScan("com.uy.servlet")
public class SpringBootApplication{

    public static void main(String[] args) {
        SpringApplication.run(SpringBootApplication.class, args); } }

(6)啟動(dòng) SpringBoot 項(xiàng)目訪問地址http://localhost:8080/druid/login.html進(jìn)行查看登錄

到此這篇關(guān)于SpringBoot配置 Druid 三種方式(包括純配置文件配置)的文章就介紹到這了,更多相關(guān)SpringBoot配置 Druid內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Java將字符串在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換

    使用Java將字符串在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換

    大家都知道在一些情況下,我們需要特殊的編碼格式,如:UTF-8,但是系統(tǒng)默認(rèn)的編碼為ISO-8859-1,遇到這個(gè)問題,該如何對(duì)字符串進(jìn)行兩個(gè)編碼的轉(zhuǎn)換呢,下面小編給大家分享下java中如何在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換,感興趣的朋友一起看看吧
    2021-12-12
  • springboot springmvc拋出全局異常的解決方法

    springboot springmvc拋出全局異常的解決方法

    這篇文章主要為大家詳細(xì)介紹了springboot springmvc拋出全局異常的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java 自定義注解的魅力

    Java 自定義注解的魅力

    這篇文章主要介紹了Java 自定義注解的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 詳解Spring Bean 之間的特殊關(guān)系

    詳解Spring Bean 之間的特殊關(guān)系

    在 Spring 容器中,兩個(gè) Bean 之間除了通過 <ref> 建立依賴關(guān)系外,還存在著一些特殊關(guān)系。這篇文章給大家想想介紹了Spring Bean 之間的特殊關(guān)系,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2018-05-05
  • Struts2的配置 struts.xml Action詳解

    Struts2的配置 struts.xml Action詳解

    這篇文章主要介紹了Struts2的配置 struts.xml Action詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • SpringBoot中整合消息服務(wù)組件的方法

    SpringBoot中整合消息服務(wù)組件的方法

    本文介紹了消息服務(wù)組件的基本概念,以及如何在SpringBoot中整合常見的消息服務(wù)組件,如ActiveMQ、RabbitMQ和Kafka,我們探討整合消息服務(wù)組件在實(shí)際應(yīng)用場景中的優(yōu)勢,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • idea上提交項(xiàng)目到gitee 最后出現(xiàn) Push rejected的問題處理方法

    idea上提交項(xiàng)目到gitee 最后出現(xiàn) Push rejected的問題處理方法

    這篇文章主要介紹了idea上面提交項(xiàng)目到gitee 最后出現(xiàn) Push rejected的問題處理方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot基于數(shù)據(jù)庫的定時(shí)任務(wù)統(tǒng)一管理的實(shí)現(xiàn)

    SpringBoot基于數(shù)據(jù)庫的定時(shí)任務(wù)統(tǒng)一管理的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot基于數(shù)據(jù)庫的定時(shí)任務(wù)統(tǒng)一管理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Java中計(jì)算時(shí)間差的方法

    Java中計(jì)算時(shí)間差的方法

    這篇文章主要介紹了Java中計(jì)算時(shí)間差的方法,實(shí)例分析了java常見的三種計(jì)算時(shí)間差的技巧,需要的朋友可以參考下
    2015-06-06
  • idea如何自動(dòng)添加版權(quán)許可證信息

    idea如何自動(dòng)添加版權(quán)許可證信息

    這篇文章主要介紹了idea如何自動(dòng)添加版權(quán)許可證信息問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評(píng)論