spring boot配置druid(德鲁伊)

关于druid的介绍请看 阿里巴巴温少访谈

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

 <!-- 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 的引入,我项目引入具体如下:

 <!-- 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>

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添加的配置########################################

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;  }
}

上图可以看出只是将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 {}

下图是配置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 {
}

以上三个类配置完之后,需要在启动类多添加一个注解,即@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);}
}

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

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

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


如果你有疑问,这个页面的来源,因为我们配置过程并没有配置index.html页面,我估计它应该在引入的druid的jar包里,具体未知我没有找过。

访问方式都是固定的/druid/index.html或者是/druid/login.html。

spring boot配置druid(德鲁伊)相关推荐

  1. spring boot配置druid

    为什么80%的码农都做不了架构师?>>>    在pom中添加starter依赖 <dependency><groupId>com.alibaba</g ...

  2. java was datasource_使用Spring Boot配置Druid时dataSource无法被autowired

    配置好了dataSource之后,想测试一下有没有配置成功 package com.yang.Controller; import com.alibaba.druid.pool.DruidDataSo ...

  3. Spring Boot配置druid监控页功能

    1.导入坐标 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...

  4. spring boot 配置 druid的filters时报错 Reason: org.apache.log4j.Priority

    报错信息: Failed to bind properties under 'spring.datasource.druid' to javax.sql.DataSource: Property: s ...

  5. druid监控页面_Spring boot学习(四)Spring boot整合Druid

    前言 在上一篇博客中我们介绍了Spring boot配置Mybatis,但是并没有配置连接池,这在实际开发过程中肯定是不切实际的,多次的数据库连接会给程序和数据库都带来没必要的负担,这一篇博客我将介绍 ...

  6. Spring Boot下Druid连接池的使用配置分析

    引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1.  ...

  7. Spring Boot 集成 Druid 监控数据源

    关注"Java后端技术全栈" 回复"面试"获取全套大厂面试资料 Druid 介绍 Druid 是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和 ...

  8. spring boot配置mybatis和事务管理

    spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...

  9. Spring Boot集成Druid异常discard long time none received connection.

    Spring Boot集成Druid异常 在Spring Boot集成Druid项目中,发现错误日志中频繁的出现如下错误信息: discard long time none received conn ...

最新文章

  1. SpringBoot conditional注解和自定义conditional注解使用
  2. Linux下的hostname命令详解
  3. 怎么用计算机算p a,老师,(P/A,12%,10)这个值用计算器怎么算出来?
  4. java 9 module_Java 9:欢迎来到Module World
  5. 智能家居逐渐融入AI技术 向大众市场扩张仍需时间
  6. Java多线程编程核心技术-多线程基础使用
  7. 科学计算机fix sci,计算器按mode出来的comp、SD、REG、DEg、Rad、Gra、Fix、Sci、Norm、Disp、是什么意思?...
  8. Linux内核中的xx_initcall
  9. 为什么单独循环中的元素加法比组合循环中的要快得多?
  10. Ubuntu返回上级目录快捷键
  11. 阿里p7架构师:三年经验应该具备什么样的技能?
  12. 英国资深律师称加密货币和智能合约必然将成为社会主流
  13. 使用高德地图根据坐标点画出路线
  14. 计算机学业水平考试的选择题,信息技术学业水平考试选择题带答案.doc
  15. 六问禅道5:需求和Bug的区别
  16. 洛谷 P3426 [POI2005]SZA-Template
  17. linux磁盘变为raw,LINUX下如何挂载RAW格式的硬盘
  18. Java实现QQ登陆界面的搭建
  19. K-临近算法介绍和实践
  20. matlab图形编辑,Matlab图形与编辑

热门文章

  1. gn fast-gn_GN的完整形式是什么?
  2. java 集合addall_Java集合的addAll()方法和示例
  3. 数字图像处理图像反转的实现_反转8位数字| 8085微处理器
  4. python随机抽签列表中的同学值日_神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号...
  5. ssm中java实现树状结构_java ssm使用递归写树形结构
  6. arduino 休眠 节能_Arduino低功耗掉电模式看门狗唤醒
  7. python函数示例_带Python示例的float()函数
  8. Xamarin开发笔记—百度在线语音合成
  9. ASP.NET MVC 3发布报错(ASP.NET MVC 3在没有安装环境的服务器上运行)的解决方案
  10. Ajax在请求数据时显示等待动画遮罩