关键词:
springboot作为现在十分流行的框架,简化Spring应用的初始搭建以及开发过程,现在我们就使用springboot来进行简单的web项目搭建并对项目sql进行监控。
项目的搭建就省略了,springboot项目搭建好以后,进行一下操作, 本例子的项目使用 maven 管理的jar
1.加入依赖, 在pom.xml文件 增加配置
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.8</version>
</dependency>
2、
配置数据源 , 在appcation.yml文件加入druid的数据源配置
# 数据库访问配置 # 主数据源,默认的 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/demo spring.datasource.username=root spring.datasource.password=admin # 下面为连接池的补充设置,应用到上面所有数据源中 # 初始化大小,最小,最大 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 spring.jpa.database=mysql spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
3.使用注解的方式,增加druid的过滤器 ,新增一个类 DruidStatFilter.java
import com.alibaba.druid.support.http.WebStatFilter;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
@WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*",
initParams = {
@WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
})
public class DruidStatFilter extends WebStatFilter {
}
4.使用注解的方式 增加 DruidStatViewServlet.java 服务类
import com.alibaba.druid.support.http.StatViewServlet;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
@SuppressWarnings("serial")
@WebServlet(urlPatterns = "/druid/*", initParams = {
@WebInitParam(name = "allow", value = ""), // IP白名单
@WebInitParam(name = "deny", value = ""),
// IP黑名单
@WebInitParam(name = "loginUsername", value = "admin"), // 用户名
@WebInitParam(name = "loginPassword", value = "admin*druid"), // 密码
@WebInitParam(name = "resetEnable", value = "true")})
public class DruidStatViewServlet extends StatViewServlet {
}
5.这里有个很重要的事情一定不要忘了在启动类中加上servlet的扫描注解
@ServletComponentScan(value = "自己的包")
6.按理说现在druid就搭建好了可以通过http://localhost:8080/druid/index.html进行正常访问了,但是在操作中我发现sql监控并没有起到作用,也就是并没有sql监控的记录,在多次查阅资料后,
终于找到解决办法,虽然我们在配置文件application.properties中已经配置了druid数据源,但是在这里我们需要再次将这个DataSource配置到java配置中,这里我们将这个配置直接写入到启动类中。
@Bean @ConfigurationProperties(prefix="spring.datasource") public DataSource druidDataSource() { return new DruidDataSource(); }
springboot整合druid无法监控sql
最近在学习springboot,然后尝试使用druid进行SQL监控,但是一直没有数据,上网搜了很久发现,依赖错了 错误依赖:1<dependency>2<groupId>com.alibaba</groupId>3<artifactId>druid-spring-boot-starter</artifactId>4<ve 查看详情
如何在 Spring Boot 中加入 SQL 表?
】如何在SpringBoot中加入SQL表?【英文标题】:HowtojoinSQLtablesinSpringBoot?【发布时间】:2021-09-0121:35:04【问题描述】:如何将Author类中的author_firstName和author_lastName与Book类绑定?我使用h2数据库,author_id和book_id是主键,我使用邮递... 查看详情
如何在查询中加入 MS-SQL 和 MySQL 表?
】如何在查询中加入MS-SQL和MySQL表?【英文标题】:HowcanIjoinaMS-SQLandMySQLtableinaquery?【发布时间】:2011-12-0410:57:36【问题描述】:我想对MS-SQL和MySql数据库进行连接。MS-SQL查询有效地生成了一个索引,然后我想拉回与该查询结果匹... 查看详情
sql高级查询(代码片段)
...断进行讲解:如果还有更多的查询条件,只要在下面方法中加入相对应的字段,然后添加相应的get和set方法,最后在getQueryCondition方法中加入相对应的条件判断语句if就可以了。publicclassSqlCondition//职位:用于查询的条件判断private... 查看详情
springboot配置druid数据源
springboot配置druid数据源Author:SimpleWuspringboot整合篇前言对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringData的方式进行统一管理,添加大量的自动配置,屏蔽了很多设置。引入了各种XxxTemplate和XxxRepository来简化我们... 查看详情
springboot(18)——使用alibabadruiddatasource(代码片段)
...连接池,其GitHub地址是https://github.com/alibaba/druid。需要在SpringBoot应用中使用DruidDataSource,可以在pom.xml中加入如下依赖。1.1.10版本是目前最新的一个版本。<dependency><groupId>com.alibaba</groupId><artifactId>druid 查看详情
springboot整合druid
在pom.xml中导入Druid<!--https://mvnrepository.com/artifact/com.alibaba/druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifact 查看详情
在 oracle sql developer 中加入查询快,在 odp.net 中超慢
】在oraclesqldeveloper中加入查询快,在odp.net中超慢【英文标题】:Joinqueryfastinoraclesqldeveloper,superslowinodp.net【发布时间】:2010-12-0814:56:36【问题描述】:我有一个sql查询(连接),在OracleSQLDeveloper上运行时超快(毫秒),但在使用O... 查看详情
springboot配置druid数据源
springboot整合篇前言对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringData的方式进行统一管理,添加大量的自动配置,屏蔽了很多设置。引入了各种XxxTemplate和XxxRepository来简化我们队数据访问层的操作。springboot2.0默... 查看详情
springboot入门之基于druid配置mybatis多数据源
...处理,这篇了解下使用基于基于Druid配置Mybatis多数据源。SpringBoot默认配置数据库连接信息时只需设置url等属性信息就可以了,SpringBoot就会基于约定根据配置信息实例化对象,但是一般大型的项目都是有多个子系统或者多个数据... 查看详情
springboot使用druid记录sql脚本日志
方法一:在application.properties设置开启slf4j过滤器#开启slf4j过滤器spring.datasource.druid.filter.slf4j.enabled=true然后在logback-spring.xml文件配置日志输出<loggername="druid.sql.Statement"level= 查看详情
springboot使用druid记录sql脚本日志(代码片段)
方法一:在application.properties设置开启slf4j过滤器#开启slf4j过滤器spring.datasource.druid.filter.slf4j.enabled=true然后在logback-spring.xml文件配置日志输出<loggername="druid.sql.Statement"level= 查看详情
在sql server中加入两个视图
】在sqlserver中加入两个视图【英文标题】:Jointwoviewsinsqlserver【发布时间】:2016-07-1411:19:31【问题描述】:查看1+------+---------------+|PERSON|CONTACTLIST|+------+---------------+|A|CONT1||A|CONT2||A|CONT5||B|CONT1||B|CONT3||C|CONT2|+------+------- 查看详情
SQL 在 GROUP BY 中加入最新结果
】SQL在GROUPBY中加入最新结果【英文标题】:SQLjoinmostrecentresultsinGROUPBY【发布时间】:2018-07-2917:51:13【问题描述】:我有下表:+--------------------+----------+--------+-----------------+|JOB_RUN_DATE_TIME_ts|JOB_STATUS|JOB_NAME|UPSTREAM_JOB_NAME|+--- 查看详情
在sql中加入两列作为日期
】在sql中加入两列作为日期【英文标题】:Jointwocolumnsasadateinsql【发布时间】:2020-02-2622:03:20【问题描述】:我目前正在通过MicrosoftQuery处理一份报告,我遇到了这个问题,我需要计算过去一年的总金额。表格如下所示:ItemNumber|... 查看详情
如何在 SQL 中加入包含祖父-父-子列的表?
】如何在SQL中加入包含祖父-父-子列的表?【英文标题】:HowtojoinatablewithGrandparent-Parent-ChildcolumnsinSQL?【发布时间】:2020-09-0210:05:50【问题描述】:我有两张表hierarchy和item我想加入:hierarchy|------------------|------------------|-------------... 查看详情
如何在 SQL SERVER 中加入我的条件?
】如何在SQLSERVER中加入我的条件?【英文标题】:HowtomakejoinsinmycriteriainSQLSERVER?【发布时间】:2017-06-2011:24:30【问题描述】:我有三张桌子:**1.FT_ViewItemMovement**StoreIDItemLookupCodeQTY-------------------------------10011112111122210011112111111201111 查看详情
如何在 SQL Server Management Studio 中加入 3 列?
】如何在SQLServerManagementStudio中加入3列?【英文标题】:Howtojoin3columnsinSQLServerManagementStudio?【发布时间】:2017-08-3006:15:47【问题描述】:我需要help的脚本,了解如何使用SQL将3列合二为一。我想在结果窗口中加入列address_1、address_... 查看详情