zoukankan      html  css  js  c++  java
  • SpringBoot学习笔记(二)配置druid

    SpringBoot学习笔记(二)配置druid

    第一步:引入相关依赖,全部依赖都是上一篇springboot+mybatis依赖的基础上,再加上下边的依赖,如下:

    1
    2
    3
    4
    5
    6
    <!-- Druid数据库连接池组件 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.18</version>
    </dependency>

    注意,由于druid的配置还需要一些注解,比如@WebInitParam @WebFilter 等,它们在spring boot里来自于tomcat-embed-core包,而该包又来自于spring-boot-starter-web,所以,除了上边的依赖以外,一定要保证spring-boot-starter-web 的引入,我项目引入具体如下:

    1
    2
    3
    4
    5
    <!-- Spring Boot Web 依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    第二步:再springboot项目的配置文件application.yml文件中加入如下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    spring:
      ##数据库连接信息
      datasource:
        url: jdbc:mysql://localhost:3306/young
        username: root
        password: root
        driver-class-name: com.mysql.jdbc.Driver
        ###################以下为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
        # 打开PSCache,并且指定每个连接上PSCache的大小
        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
        filters: stat,wall,log4j
        # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
        # 合并多个DruidDataSource的监控数据
        useGlobalDataSourceStat: true
        ###############以上为配置druid添加的配置########################################

    第三步:还需要添加三个配置类,如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    package com.young.config;
     
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import com.alibaba.druid.pool.DruidDataSource;
     
    import javax.sql.DataSource;
     
    /**
     * 配置druid需要的配置类,引入application.properties文件中以spring.datasource开头的信息
     * 因此需要在application.properties文件中配置相关信息。
     *
     * @author young
     */
    @Configuration
    public class DruidConfig {
     
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource")
        public DataSource druidDataSource() {
            DruidDataSource druidDataSource = new DruidDataSource();
            return druidDataSource;
        }
     
    }

    上图可以看出只是将DataSource对象的实现类变为了DruidDataSource对象

    下图是过滤规则的配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    package com.young.config;
     
    import com.alibaba.druid.support.http.WebStatFilter;
     
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.annotation.WebInitParam;
     
    /**
     * 配置druid过滤规则
     * @author young
     *
     */
    @WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
            initParams={
                    @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
            })
    public class DruidStatFilter extends WebStatFilter{
    }

    以上三个类配置完之后,需要在启动类多添加一个注解,既@ServletComponentScan

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    package com.young;
     
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.web.servlet.ServletComponentScan;
     
    @SpringBootApplication
    @ServletComponentScan //配置druid必须加的注解,如果不加,访问页面打不开,filter和servlet、listener之类的需要单独进行注册才能使用,spring boot里面提供了该注解起到注册作用
    @MapperScan("com.young.mapper")//必须加这个,不加报错,如果不加,也可以在每个mapper上添加@Mapper注释
    public class StartApplication {
     
        public static void main(String[] args) {
            SpringApplication.run(StartApplication.class, args);
        }
    }

    第四步:以上配置完成后,启动项目以后,可以访问druid页面了,比如我的项目端口号是8080,我的访问页面如下:(我没有配置项目名,springboot默认页面从“/”开始)

    账号密码即为配置类中配置的admin

  • 相关阅读:
    javascript 压缩空格代码演示
    javascript 正则表达式代码
    数据筛选和排序
    实现win的on程序数据更新
    使用listview控件展示数据
    初始windows程序
    构建布局良好的windows程序
    ADO.NET访问数据库
    模糊查询
    基本查询
  • 原文地址:https://www.cnblogs.com/handsome1013/p/10934464.html
Copyright © 2011-2022 走看看