美文网首页SpringBoot
SpringBoot整合Druid数据源

SpringBoot整合Druid数据源

作者: MaLizhi | 来源:发表于2018-12-12 23:48 被阅读44次

    Druid介绍: Druid是阿里巴巴开源平台上一个数据库连接池实现,它不但结合了C3P0、DBCP、PROXOOL等数据库连接池的优点,同时还加入了日志监控,可以分别监控DB池连接和SQL的执行情 况,是一款针对监控而生的数据库连接池

    环境:
    IDEA版本2017.3.1 x64
    JDK1.8
    SpringBoot2.1.1
    Druid1.1.8

    流程概括:

    • 利用Spring Initializr创建一个springboot项目
    • pom添加druid数据源依赖
    • 配置Druid数据源属性文件
    • 实现Druid的配置类
    • 启动,访问localhost:8080/druid 进入druid数据源监控系统

    一、利用Spring Initializr(需要连网)创建一个springboot项目


    最后选择组件时,把mysql和web勾上


    二、pom添加druid数据源依赖

    在pom.xml添加druid依赖

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

    三、配置Druid数据源属性文件

    创建application.yml全局配置文件,配置数据源参数,或者在application.properties配置亦可

    spring:
      datasource:
    #   数据源基本配置
        username: yourusername
        password: yourpassword
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://ip:3306/springboot_druid
        type: com.alibaba.druid.pool.DruidDataSource
    #   数据源其他配置
        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
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
        filters: stat,wall
        maxPoolPreparedStatementPerConnectionSize: 20
        useGlobalDataSourceStat: true
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
    

    四、实现Druid的配置类

    需要编写一个配置类,添加数据源组件

    @Configuration
    public class DruidConfig {
    
        @ConfigurationProperties(prefix = "spring.datasource")
        @Bean
        public DataSource druid(){
            return  new DruidDataSource();
        }
    
        //配置Druid的监控
        //1、配置一个管理后台的Servlet
        @Bean
        public ServletRegistrationBean statViewServlet(){
            ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
            Map<String,String> initParams = new HashMap<>();
    
            initParams.put("loginUsername","admin");
            initParams.put("loginPassword","123456");
            initParams.put("allow","");//默认就是允许所有访问
            initParams.put("deny","192.168.15.21");
    
            bean.setInitParameters(initParams);
            return bean;
        }
    
    
        //2、配置一个web监控的filter
        @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;
        }
    }
    

    五、启动springboot应用,访问localhost:8080/druid 进入druid数据源监控系统

    访问成功代表数据源整合成功,访问之前可以编写持久层访问数据库,Druid会显示sql语句以及执行次数

    登入页


    用户名和密码在配置类中填写的账号和密码
    登入后首页


    更多Spring Boot整合可浏览此博客:malizhi.cn

    相关文章

      网友评论

        本文标题:SpringBoot整合Druid数据源

        本文链接:https://www.haomeiwen.com/subject/kkvmhqtx.html