gpt4 book ai didi

java - 如何使用 Spring Boot 配置 Sniffy?

转载 作者:行者123 更新时间:2023-11-30 08:39:36 26 4
gpt4 key购买 nike

Sniffy是一个很酷的小项目:

Sniffy counts the number of executed SQL queries and provides an API for validating them It is designed for unit tests and allows you to test if particular method doesn't make more than N SQL queries Especially it's useful to catch the ORM N+1 problem at early stages

它还提供了一个 servlet 过滤器,它可以将 HTML 注入(inject)到一个带有弹出窗口的页面中,显示您执行的查询。该文档解释了如何为传统的基于 web.xml 的应用程序而不是 Spring Boot 配置它。我设法通过将此 bean 添加到 @Configuration 类来注册 servlet 过滤器:

@Bean
public FilterRegistrationBean snifferFilter()
{
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
SnifferFilter filter = new SnifferFilter();
filter.setInjectHtml(true);
filterRegistrationBean.setFilter(filter);
filterRegistrationBean.setName("sniffer");
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}

我还更新了 JDBC url,文档说:

add sniffer: prefix to the JDBC connection url For example jdbc:h2:~/test should be changed to sniffer:jdbc:h2:mem:

所以我在我的 application.yml 中添加了以下内容:

spring.datasource.url: sniffer:jdbc:mysql://localhost:3306

但是当我启动我的应用程序时,它失败并出现以下错误:

URL must start with 'jdbc'

最佳答案

这里是 Sniffy 作者!

实际上,从版本 3.0.7(2016 年 4 月)开始,您必须在 Spring Boot 应用程序中明确指定驱动程序类名称。有一个 open issue在错误跟踪器中自动配置它。

顺便说一下,sniffy 3.0.5 使用 @EnableSniffy 注释引入了对 Spring Boot 的开箱即用支持,因此您不必创建 FilterRegistrationBean你自己 - 只需像这样将注释放在你的应用程序类中:

import io.sniffy.boot.EnableSniffy;

@SpringBootApplication
@EnableAutoConfiguration
@EnableSniffy
public class Application {

public static void main(String[] args) throws ClassNotFoundException {
SpringApplication.run(Application.class, args);
}

}

关于java - 如何使用 Spring Boot 配置 Sniffy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com