Druid 是阿里提供的比较专业的可视化web、DB监控工具,基于标准SpringWeb的集成方式,Druid的官网手册写的非常明晰了,本人在使用SpringBoot进行集成的时候,遇到了一些问题,并且扎到了解决方案。
1. 搭建SpringBoot的基础框架,本人这里配置了Mysql数据库、Web(这个不是本文重点)
2. 引入Druid
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.29</version> </dependency>
3. 增加Servlet
@WebServlet(urlPatterns = "/druid/*", initParams = { @WebInitParam(name = "loginUsername", value = "druid"), @WebInitParam(name = "loginPassword", value = "druid"), @WebInitParam(name = "resetEnable", value = "false"), } ) public class DruidStatView extends StatViewServlet { private static final long serialVersionUID = 1L; }
这里指定了用户名和密码都是druid
4. 启动类增加对Servlet的扫描,@ServletComponentScan,默认情况下该注释扫描启动类所在包及其所有子包,可通过basePackages、basePackageClasses 重新指定
5. 增加 Filter
@WebFilter(urlPatterns = "/*", initParams = { @WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"), } ) public class DruidWebStatFilter extends WebStatFilter{ }
6. 配置DB,这里使用了yml格式的配置文件
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://${mysql.host}:${mysql.port}/${mysql.name} username: ${mysql.username} password: ${mysql.password} filters: stat,wall,log4j
注意:type: com.alibaba.druid.pool.DruidDataSource,可以不指定driverClassName,Druid会自动匹配
7. 到此,Druid 的基本配置已经好了,启动应用,访问http://localhost:8080/druid 输入用户名和密码之后,可以看到相关界面了。但是这里有几个问题:
1) 【SQL监控】没有起作用,表现是 【数据源】标签下的【* filter类名】没有信息
2) 【Spring监控】没有内容,(这个是没有配置)
8. 【Spring监控】的配置
@Bean public DruidStatInterceptor druidStatInterceptor() { return new DruidStatInterceptor(); } @Bean public JdkRegexpMethodPointcut druidStatPointcut() { JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut(); String patterns = "com.lsc.learn.spring.druid.*"; druidStatPointcut.setPatterns(patterns); return druidStatPointcut; } @Bean public Advisor druidStatAdvisor() { return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor()); }
9. 【SQL监控】的配置(本文重点)
@Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource druidDataSource() { return new DruidDataSource(); }
即需要明确写明DataSource,具体什么原因就不清楚了,还望了解的大神讲解一下。
10. 这里只讲述了如何在springboot中集成druid,其他druid的内容请参照Druid的官方手册
相关推荐
一个基于Springboot的小项目,采用Druid多数据源的设计,可以同时操作Mysql与Oracle数据库,配置了多线程处理任务,为刚接触springboot的朋友提供参考。
Springboot 2.4.4 网上搜到的配置多个DispatcherServlet 都有坑,自己避坑写的一个demo,处理.do .htm请求,Controller分离不会出现一个Controller可以处理.do也处理.htm可自己扩展.action .json等,适合分离前台...
通过注解配置即可自动注入扫描相关的xml和bean的路径,集成了mybatis的分页查询、事物处理、使用了druid数据源
尚硅谷_SpringBoot_配置-properties配置文件编码问题 尚硅谷_SpringBoot_配置-@ConfigurationProperties与@Value区别 尚硅谷_SpringBoot_配置-@PropertySource、@ImportResource、@Bean 尚硅谷_SpringBoot_配置-配置...
主要是数据同步从oracle同步到mysql,数据量为好几十万,采用了流处理的方式同步进行处理,防止出现oom
尚硅谷_SpringBoot_配置-properties配置文件编码问题 尚硅谷_SpringBoot_配置-@ConfigurationProperties与@Value区别 尚硅谷_SpringBoot_配置-@PropertySource、@ImportResource、@Bean 尚硅谷_SpringBoot_配置-配置...
12、尚硅谷_SpringBoot_配置-properties配置文件编码问题 13、尚硅谷_SpringBoot_配置-@ConfigurationProperties与@Value区别 14、尚硅谷_SpringBoot_配置-@PropertySource、@ImportResource、@Bean 15、尚硅谷_...
包含SpringBoot环境搭建、常用注解、与Mybatis整合创建多数据源的连接+Druid连接池配置、SpringBoot的热部署、SpringBoot整合Freemarker/Servlet组件/文件上传与下载、SpringBoot自定义拦截器以及将拦截器注册到容器...
内置对象、显示对象信息、文件上传、使用文件服务器、拦截器、配置druid数据库连接池、整合MyBatis框架、事务控制、Druid监控、整合ActiveMQ、 整合RabbitMQ、整合kafka、邮件发送、定时调度、Actuator监控、 整合...
SpringBoot2 基础教程,日志配置,数据源配置,事务管理等。环境搭建和RestFul风格接口配置Log4j2,实现不同环境日志打印。配置系统全局异常映射处理。定时任务和异步任务的使用方式。多个拦截器配置和使用场景。...
09、尚硅谷_SpringBoot_配置-yaml简介 10、尚硅谷_SpringBoot_配置-yaml语法 11、尚硅谷_SpringBoot_配置-yaml配置文件值获取 12、尚硅谷_SpringBoot_配置-properties配置文件编码问题 13、尚硅谷_SpringBoot_配置-@...
包含SpringBoot环境搭建、常用注解、与Mybatis整合创建多数据源的连接+Druid连接池配置、SpringBoot的热部署、SpringBoot整合Freemarker/Servlet组件/文件上传与下载、SpringBoot自定义拦截器以及将拦截器注册到容器...
config 配置相关内容 如mqtt 配置等 constant 常量类 Controller 页面端请求控制类 dao 数据库操作层 entity 实体对象 exception 异常相关包 extApi 对外平台开放API 相关java factory 工厂类处理包 如果...
12、_SpringBoot_配置-properties配置文件编码问题 13、_SpringBoot_配置-@ConfigurationProperties与@Value区别 14、_SpringBoot_配置-@PropertySource、@ImportResource、@Bean 15、_SpringBoot_配置-配置文件...
相信很多朋友在开发的时候,可能会碰到需要一个项目,配置多个数据源的需求,可能是同一种数据库,也可能是不同种类的数据库,这种情况,我们就需要配置多数据源对程序的支持了。 本项目就是一个多数据源的配置,...
sl4j日志分包:将sql日志、业务日志、异常日志进行了分离,更方便定位问题 日志表:使用aop拦截实现 权限控制:基于token方式,禁用session 对各种不同异常进行了全局统一处理 使用lombok简化java代码,让源码...
实现异步处理,定时任务,整合Quartz Job以及Spring Task 邮件管理功能, 整合spring-boot-starter-mail发送邮件等, 数据源:druid 用户管理,菜单管理,角色管理,代码生成 运行环境 jdk8+oracle+redis+...
1.springboot整合druid多数据源和log4j2 (1)实现数据源,主数据库(写),从数据库(读),读写分离的方案之一 (2)mysql主从复制,保持数据一致性 (3)使用druid的监控功能 (4)log4j2日志介绍和配置说明 2....
本框架是我搭建的一个springboot 的框架,该框架上已经集成了,swagger2,分页插件,多数据源,redies,已经对日志的统一捕获处理,及跨域访问等问题。 网站的访问地址:http://localhost:8004/swagger-ui.html 应用...
项目特点:使用了SpringBoot框架,简化了项目的配置和开发流程。采用了MyBatis作为持久层框架,方便地进行数据库操作。使用了Thymeleaf模板引擎,实现了动态页面渲染。采用了分页插件PageHelper,实现了分页功能。...