zoukankan      html  css  js  c++  java
  • spring boot配置德鲁伊

    1.引入相关依赖,全部依赖是上一篇spring boot+mybatis依赖的基础上,再加上下边的依赖,如下:

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

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

     <!-- Spring Boot Web 依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
                <dependency>
                    <groupId>com.alibaba</groupId>
                    <artifactId>druid</artifactId>
                    <version>1.0.18</version>
                </dependency>
            </dependency>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2.在spring boot项目里的配置文件application.properties 文件中加入如下内容:

    ##数据库连接信息
    spring.datasource.url=jdbc:oracle:thin:@//127.0.0.1:1521/orcl
    spring.datasource.username=nqsd
    spring.datasource.password=nqsd
    spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
    ###################以下为druid增加的配置###########################
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    # 下面为连接池的补充设置,应用到上面所有数据源中
    # 初始化大小,最小,最大
    spring.datasource.initialSize=5
    spring.datasource.minIdle=5
    spring.datasource.maxActive=20
    # 配置获取连接等待超时的时间
    spring.datasource.maxWait=60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    spring.datasource.timeBetweenEvictionRunsMillis=60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    spring.datasource.minEvictableIdleTimeMillis=300000
    spring.datasource.validationQuery=SELECT 1 FROM DUAL
    spring.datasource.testWhileIdle=true
    spring.datasource.testOnBorrow=false
    spring.datasource.testOnReturn=false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    spring.datasource.poolPreparedStatements=true
    spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
    # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    spring.datasource.filters=stat,wall,log4j
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    # 合并多个DruidDataSource的监控数据
    #spring.datasource.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
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

      druid本身就是为了扩展jdbc的功能,而dataSource对象就是jdbc的配置,所以,上边多加的那些dataSource配置,也能理解,具体是什么功能我没有一一看过。

    3.还需要添加3个配置类,如下:

    package microservice.qssj.config;
    import javax.sql.DataSource;
    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;
    /**
     * 配置druid需要的配置类,引入application.properties文件中以spring.datasource开头的信息
     * 因此需要在application.properties文件中配置相关信息。
     * @author Administrator
     *
     */
    @Configuration
    public class DruidConfig {
        @Bean  
        @ConfigurationProperties(prefix = "spring.datasource")  
        public DataSource druidDataSource() {  
            DruidDataSource druidDataSource = new DruidDataSource();  
            return druidDataSource;  
        } 
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

      上图可以看出只是将DataSource对象的实现类变为了DruidDataSource对象。 
      下图是过滤规则的配置。

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

      下图是配置druid页面的登录账号密码,及黑白名单设置。

    package microservice.qssj.config;
    import javax.servlet.annotation.WebInitParam;
    import javax.servlet.annotation.WebServlet;
    import com.alibaba.druid.support.http.StatViewServlet;
    /**
     * 配置druid页面配置
     * @author Administrator
     *
     */
    @SuppressWarnings("serial")
    @WebServlet(urlPatterns = "/druid/*", 
        initParams={
                @WebInitParam(name="allow",value="192.168.1.20,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)
                @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow)
                @WebInitParam(name="loginUsername",value="admin"),// 用户名
                @WebInitParam(name="loginPassword",value="admin"),// 密码
                @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
        })
    public class DruidStatViewServlet extends StatViewServlet {
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

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

    package microservice.qssj;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.web.servlet.ServletComponentScan;
    import org.springframework.context.annotation.ImportResource;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    /**
     * 权属启动类
     * @author Administrator
     */
    @SpringBootApplication
    @ServletComponentScan //配置druid必须加的注解,如果不加,访问页面打不开,filter和servlet、listener之类的需要单独进行注册才能使用,spring boot里面提供了该注解起到注册作用
    @MapperScan("microservice.qssj.mapper")//必须加这个,不加报错,如果不加,也可以在每个mapper上添加@Mapper注释,
    //这里还要添加一个总的注解,具体忘记了
    public class QssjServiceApplication {
        public static void main(String[] args) {
            SpringApplication.run(QssjServiceApplication.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

      注意新添加的三个配置类位置,他们放的包结构位置比启动类低。 
    启动类位置:    package microservice.qssj; 
    druid配置类位置:   package microservice.qssj.config;

    4.以上配置完之后,启动项目以后,可以访问druid页面了,比如我的项目端口号是30001,我的访问页面如下:(我没有配置项目名,默认spring boot页面从“/”开始)

    http://localhost:30001/druid/index.html

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

    这里写图片描述
      如果你有疑问,这个页面的来源,因为我们配置过程并没有配置index.html页面,我估计它应该在引入的druid的jar包里,具体未知我没有找过。 
      访问方式都是固定的/druid/index.html或者是/druid/login.html

  • 相关阅读:
    Meteor会话
    Meteor事件
    Meteor表单
    Meteor集合
    Meteor模板
    Visual Studio 必备神器
    DB2 DATE类型在显示的时候,带有00:00:00,去掉的方法,使用VARCHAR()函数
    SQL 递归查询
    程序员最艰巨的十大任务
    Windows 7,64位机器上安装DB2 7.2+FP7
  • 原文地址:https://www.cnblogs.com/dzcWeb/p/9164716.html
Copyright © 2011-2022 走看看