1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      SpringBoot2中怎么使用Druid連接池

      這篇文章給大家介紹SpringBoot2 中怎么使用Druid連接池,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

      創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、做網(wǎng)站、宏偉網(wǎng)絡(luò)推廣、成都小程序開發(fā)、宏偉網(wǎng)絡(luò)營(yíng)銷、宏偉企業(yè)策劃、宏偉品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供宏偉建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

      一、Druid連接池

      1、druid簡(jiǎn)介

      Druid連接池是阿里巴巴開源的數(shù)據(jù)庫連接池項(xiàng)目。Druid連接池為監(jiān)控而生,內(nèi)置強(qiáng)大的監(jiān)控功能,監(jiān)控特性不影響性能。功能強(qiáng)大,能防SQL注入,內(nèi)置Loging能診斷Hack應(yīng)用行為。
      Druid連接池是阿里巴巴內(nèi)部唯一使用的連接池,在內(nèi)部數(shù)據(jù)庫相關(guān)中間件TDDL/DRDS 都內(nèi)置使用強(qiáng)依賴了Druid連接池,經(jīng)過阿里內(nèi)部數(shù)千上萬的系統(tǒng)大規(guī)模驗(yàn)證,經(jīng)過歷年雙十一超大規(guī)模并發(fā)驗(yàn)證。

      2、druid特點(diǎn)

      穩(wěn)定性特性,阿里巴巴的業(yè)務(wù)驗(yàn)證
      完備的監(jiān)控信息,快速診斷系統(tǒng)的瓶頸
      內(nèi)置了WallFilter 提供防SQL注入功能

      二、整合SpringBoot2框架

      1、引入核心依賴

      
      
          MySQL
          mysql-connector-java
          5.1.21
      
      
          com.alibaba
          druid-spring-boot-starter
          1.1.13
      
      
      
          org.springframework.boot
          spring-boot-starter-jdbc
      

      2、數(shù)據(jù)源配置文件

      spring:
        application:
          # 應(yīng)用名稱
          name: node07-boot-druid
        datasource:
          type: com.alibaba.druid.pool.DruidDataSource
          druid:
            driverClassName: com.mysql.jdbc.Driver
            url: jdbc:mysql://localhost:3306/data_one?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useSSL=false
            username: root
            password: 123
            initial-size: 10
            max-active: 100
            min-idle: 10
            max-wait: 60000
            pool-prepared-statements: true
            max-pool-prepared-statement-per-connection-size: 20
            time-between-eviction-runs-millis: 60000
            min-evictable-idle-time-millis: 300000
            max-evictable-idle-time-millis: 60000
            validation-query: SELECT 1 FROM DUAL
            # validation-query-timeout: 5000
            test-on-borrow: false
            test-on-return: false
            test-while-idle: true
            connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
            #filters: #配置多個(gè)英文逗號(hào)分隔(統(tǒng)計(jì),sql注入,log4j過濾)
            filters: stat,wall
            stat-view-servlet:
              enabled: true
              url-pattern: /druid/*

      3、核心配置類

      import com.alibaba.druid.pool.DruidDataSource;
      import com.alibaba.druid.support.http.StatViewServlet;
      import com.alibaba.druid.support.http.WebStatFilter;
      import org.slf4j.Logger;
      import org.slf4j.LoggerFactory;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.beans.factory.annotation.Value;
      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 org.springframework.jdbc.core.JdbcTemplate;
      /**
       * Druid數(shù)據(jù)庫連接池配置文件
       */
      @Configuration
      public class DruidConfig {
          private static final Logger logger = LoggerFactory.getLogger(DruidConfig.class);
          @Value("${spring.datasource.druid.url}")
          private String dbUrl;
          @Value("${spring.datasource.druid.username}")
          private String username;
          @Value("${spring.datasource.druid.password}")
          private String password;
          @Value("${spring.datasource.druid.driverClassName}")
          private String driverClassName;
          @Value("${spring.datasource.druid.initial-size}")
          private int initialSize;
          @Value("${spring.datasource.druid.max-active}")
          private int maxActive;
          @Value("${spring.datasource.druid.min-idle}")
          private int minIdle;
          @Value("${spring.datasource.druid.max-wait}")
          private int maxWait;
          @Value("${spring.datasource.druid.pool-prepared-statements}")
          private boolean poolPreparedStatements;
          @Value("${spring.datasource.druid.max-pool-prepared-statement-per-connection-size}")
          private int maxPoolPreparedStatementPerConnectionSize;
          @Value("${spring.datasource.druid.time-between-eviction-runs-millis}")
          private int timeBetweenEvictionRunsMillis;
          @Value("${spring.datasource.druid.min-evictable-idle-time-millis}")
          private int minEvictableIdleTimeMillis;
          @Value("${spring.datasource.druid.max-evictable-idle-time-millis}")
          private int maxEvictableIdleTimeMillis;
          @Value("${spring.datasource.druid.validation-query}")
          private String validationQuery;
          @Value("${spring.datasource.druid.test-while-idle}")
          private boolean testWhileIdle;
          @Value("${spring.datasource.druid.test-on-borrow}")
          private boolean testOnBorrow;
          @Value("${spring.datasource.druid.test-on-return}")
          private boolean testOnReturn;
          @Value("${spring.datasource.druid.filters}")
          private String filters;
          @Value("{spring.datasource.druid.connection-properties}")
          private String connectionProperties;
          /**
           * Druid 連接池配置
           */
          @Bean     //聲明其為Bean實(shí)例
          public DruidDataSource dataSource() {
              DruidDataSource datasource = new DruidDataSource();
              datasource.setUrl(dbUrl);
              datasource.setUsername(username);
              datasource.setPassword(password);
              datasource.setDriverClassName(driverClassName);
              datasource.setInitialSize(initialSize);
              datasource.setMinIdle(minIdle);
              datasource.setMaxActive(maxActive);
              datasource.setMaxWait(maxWait);
              datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
              datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
              datasource.setMaxEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
              datasource.setValidationQuery(validationQuery);
              datasource.setTestWhileIdle(testWhileIdle);
              datasource.setTestOnBorrow(testOnBorrow);
              datasource.setTestOnReturn(testOnReturn);
              datasource.setPoolPreparedStatements(poolPreparedStatements);
              datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
              try {
                  datasource.setFilters(filters);
              } catch (Exception e) {
                  logger.error("druid configuration initialization filter", e);
              }
              datasource.setConnectionProperties(connectionProperties);
              return datasource;
          }
          /**
           * JDBC操作配置
           */
          @Bean(name = "dataOneTemplate")
          public JdbcTemplate jdbcTemplate (@Autowired DruidDataSource dataSource){
              return new JdbcTemplate(dataSource) ;
          }
          /**
           * 配置 Druid 監(jiān)控界面
           */
          @Bean
          public ServletRegistrationBean statViewServlet(){
              ServletRegistrationBean srb =
                      new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
              //設(shè)置控制臺(tái)管理用戶
              srb.addInitParameter("loginUsername","root");
              srb.addInitParameter("loginPassword","root");
              //是否可以重置數(shù)據(jù)
              srb.addInitParameter("resetEnable","false");
              return srb;
          }
          @Bean
          public FilterRegistrationBean statFilter(){
              //創(chuàng)建過濾器
              FilterRegistrationBean frb =
                      new FilterRegistrationBean(new WebStatFilter());
              //設(shè)置過濾器過濾路徑
              frb.addUrlPatterns("/*");
              //忽略過濾的形式
              frb.addInitParameter("exclusions",
                      "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
              return frb;
          }
      }

      4、簡(jiǎn)單測(cè)試類

      @RestController
      public class DruidController {
          private static final Logger LOG = LoggerFactory.getLogger(DruidController.class);
          @Resource
          private JdbcTemplate jdbcTemplate ;
          @RequestMapping("/druidData")
          public String druidData (){
              String sql = "SELECT COUNT(1) FROM d_phone" ;
              Integer countOne = jdbcTemplate.queryForObject(sql,Integer.class) ;
              // countOne==2
              LOG.info("countOne=="+countOne);
              return "success" ;
          }
      }

      三、測(cè)試效果

      完成一次數(shù)據(jù)請(qǐng)求后,訪問如下鏈接。

      SpringBoot2 中怎么使用Druid連接池

      http://localhost:8007/druid
      輸入配置的用戶名和密碼:
      root root

      1、Druid監(jiān)控首頁

      主要展示鏈接數(shù)據(jù)庫的基礎(chǔ)信息。

      SpringBoot2 中怎么使用Druid連接池

      2、Druid監(jiān)控?cái)?shù)據(jù)源

      連接池配置的各項(xiàng)詳細(xì)屬性,可以參考這里查看,無需再從網(wǎng)上查找。

      SpringBoot2 中怎么使用Druid連接池

      3、Druid監(jiān)控SQL執(zhí)行

      所有執(zhí)行的SQL,都會(huì)在這里被監(jiān)控到,且會(huì)有SQL執(zhí)行的詳細(xì)計(jì)劃。

      SpringBoot2 中怎么使用Druid連接池

      關(guān)于SpringBoot2 中怎么使用Druid連接池就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


      當(dāng)前文章:SpringBoot2中怎么使用Druid連接池
      文章鏈接:http://www.ef60e0e.cn/article/gjcdoo.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        色达县| 长汀县| 阳西县| 紫云| 鄂托克前旗| 罗江县| 甘泉县| 黄浦区| 潜山县| 古田县| 陇西县| 酒泉市| 蒙城县| 克山县| 通化县| 贵州省| 丹东市| 拉萨市| 霍山县| 兰坪| 绥德县| 万州区| 朝阳区| 永康市| 龙胜| 比如县| 玛曲县| 光泽县| 缙云县| 阿拉善右旗| 昭苏县| 内丘县| 五大连池市| 清流县| 凤阳县| 平安县| 文山县| 肥城市| 庆阳市| 城口县| 太和县|