【Spring Boot 快速入门】十、Spring Boot集成Druid数据监控

前言


  Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。本文将结合Spring Boot集成Druid,进行数据源监控。


初识Druid


  Druid是阿里开源的一个JDBC应用组件, 其包括三部分:DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系; DruidDataSource 高效可管理的数据库连接池;SQLParser SQL语法分析;Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。


下载Druid


  Druid是一个开源项目,源码托管在github上,源代码仓库地址是 github.com/alibaba/dru… 。同时每次Druid发布正式版本和快照的时候,都会把源码打包,你可以从上面的下载地址中找到相关版本的源码。


DruidDataSource支持数据库


  理论上说,支持所有有jdbc驱动的数据库。实际测试过的有


数据库 支持状态
mysql 支持,大规模使用
oracle 支持,大规模使用
sqlserver 支持
postgres 支持
db2 支持
h2 支持
derby 支持
sqlite 支持
sybase 支持


Druid自动识别DriverClass


   Druid是根据url前缀来识别DriverClass的,这样使得配置更方便简洁。


前缀 DriverCLass 描述信息
jdbc:odps com.aliyun.odps.jdbc.OdpsDriver
jdbc:derby org.apache.derby.jdbc.EmbeddedDriver
jdbc:mysql com.mysql.jdbc.Driver
jdbc:oracle oracle.jdbc.driver.OracleDriver
jdbc:microsoft com.microsoft.jdbc.sqlserver.SQLServerDriver
jdbc:sybase:Tds com.sybase.jdbc2.jdbc.SybDriver
jdbc:jtds net.sourceforge.jtds.jdbc.Driver
jdbc:postgresql org.postgresql.Driver
jdbc:fake com.alibaba.druid.mock.MockDriver
jdbc:mock com.alibaba.druid.mock.MockDriver
jdbc:hsqldb org.hsqldb.jdbcDriver
jdbc:db2 com.ibm.db2.jdbc.app.DB2Driver DB2的JDBC Driver十分混乱,这个匹配不一定对
jdbc:sqlite org.sqlite.JDBC
jdbc:ingres com.ingres.jdbc.IngresDriver
jdbc:h2 org.h2.Driver
jdbc:mckoi com.mckoi.JDBCDriver
jdbc:cloudscape com.cloudscape.core.JDBCDriver
jdbc:informix-sqli com.informix.jdbc.IfxDriver
jdbc:timesten com.timesten.jdbc.TimesTenDriver
jdbc:as400 com.ibm.as400.access.AS400JDBCDriver
jdbc:sapdb com.sap.dbtech.jdbc.DriverSapDB
jdbc:JSQLConnect com.jnetdirect.jsql.JSQLDriver
jdbc:JTurbo com.newatlanta.jturbo.driver.Driver
jdbc:firebirdsql org.firebirdsql.jdbc.FBDriver
jdbc:interbase interbase.interclient.Driver
jdbc:pointbase com.pointbase.jdbc.jdbcUniversalDriver
jdbc:edbc ca.edbc.jdbc.EdbcDriver
jdbc:mimer:multi1 com.mimer.jdbc.Driver


快速开始


加入依赖


  Druid 0.1.18 之后版本都发布到maven*仓库中,所以你只需要在项目的pom.xml中加上dependency就可以了。


<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
        <!-- druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.11</version>
        </dependency>

  

主要使用到的依赖是druid这个依赖,其他的是MySQL和MyBatis的依赖。方便连接数据库使用。


配置DruidMoniterConfig


  配置一个Druid监控管理后台,主要是为了在WEB端可以查看监控管理信息。主要的配置信息有用户名、用户名密码、允许访问的权限路径、黑名单的IP等信息。然后需要配置一个web监控的filter,过滤静态文件

/**
 * @ClassName DruidMoniterConfig
 * @Description: DruidMoniterConfig
 * @Author JavaZhan @公众号:Java全栈架构师
 * @Date 2020/6/13
 * @Version V1.0
 **/
@Configuration
public class DruidMoniterConfig{
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        Map<String,String> initParams = new HashMap<>();
        initParams.put("loginUsername","admin");
        initParams.put("loginPassword","admin");
        initParams.put("allow","");
        initParams.put("deny","192.168.127.98");
        bean.setInitParameters(initParams);
        return bean;
    }
  
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());
        Map<String,String> initParams = new HashMap<>();
        initParams.put("exclusions","*.js,*.css,/druid/*");
        bean.setInitParameters(initParams);
        bean.setUrlPatterns(Arrays.asList("/*"));
        return  bean;
    }
}


基础配置信息


  配置文件主要包含数据源的URL、数据库用户名、数据库密码、驱动类等数据源相关配置信息。


server.port=8888
# mysql
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=test
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
mybatis.mapper-locations=classpath*:mapper/**/*.xml


启动类


/**
 * @ClassName DemoMyBatisApplication
 * @Description: DemoMyBatisApplication
 * @Author JavaZhan @公众号:Java全栈架构师
 * @Date 2020/6/13
 * @Version V1.0
 **/
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoMyBatisApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoMyBatisApplication.class, args);
    }
}


监控页面


  启动项目之后,在浏览器中输入http://127.0.0.1:8888/druid/,自动跳转到http://127.0.0.1:8888/druid/login.html页面,需要输入用户名和密码信息


【Spring Boot 快速入门】十、Spring Boot集成Druid数据监控


输入用户名和密码后,进入监控页面,页面信息如下:


【Spring Boot 快速入门】十、Spring Boot集成Druid数据监控


主要包含:数据源、SQL监控、SQL防火墙、Web应用、URI监控、session监控、 Spring监控、 JSON API等信息。好了Spring Boot集成Druid数据监控就已经完成了。


结语


  Spring Boot集成Druid数据监控,方便我们进行数据库连接的数据信息分析,对sql进行监控,都是基础入门的教程,更深入的配置将在以后教程中讲解。


上一篇:mac Big Sur系统 mvn打包报错:No compiler is provided in this environment. Perhaps you are running on a JRE


下一篇:Android软件版本更新