druid一共提供了几种过滤器
时间: 2023-08-13 08:06:50 浏览: 143
Druid 提供了以下几种常用的过滤器:
1. `stat`:用于统计 SQL 的执行性能,包括执行时间、并发数等信息。
2. `log4j`:将 Druid 连接池的日志输出到 Log4j 日志框架。
3. `slf4j`:将 Druid 连接池的日志输出到 SLF4J 日志框架。
4. `wall`:用于对 SQL 进行防火墙检查,防止 SQL 注入攻击。
5. `config`:用于配置 Druid 数据源的属性。
6. `encoding`:用于对数据源进行字符集编码的设置。
7. `filter`:自定义的过滤器,可以根据需要实现自己的过滤逻辑。
除了以上常用的过滤器外,Druid 还提供了其他一些过滤器选项,如 `mergeStat`、`encoding`、`stat-sql` 等。这些过滤器可以根据需求进行配置和使用,以增强 Druid 连接池的功能和安全性。
需要注意的是,不同版本的 Druid 可能会提供不同的过滤器选项,具体可根据使用的 Druid 版本和文档进行查阅。
相关问题
Druid SQL 解析器概览
Druid SQL 解析器是 Druid 中用于解析 SQL 查询语句的组件,它可以将 SQL 查询语句转换成 Druid 的查询表达式,并最终将其发送到查询引擎进行查询操作。
Druid SQL 解析器的主要功能包括:
1. SQL 语法解析:Druid SQL 解析器支持 ANSI SQL 语法,可以解析常见的 SQL 查询语句,包括 SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY 等。
2. 数据源解析:Druid SQL 解析器支持解析多种数据源,包括本地文件、Hive 表、MySQL、PostgreSQL 等。
3. 查询表达式生成:Druid SQL 解析器将 SQL 查询语句转换成 Druid 的查询表达式,可以直接发送到查询引擎进行查询操作。
4. 查询优化:Druid SQL 解析器可以对查询语句进行优化,提高查询性能,包括查询缓存、查询规则优化等。
5. 安全验证:Druid SQL 解析器可以对查询语句进行安全验证,避免恶意查询和 SQL 注入攻击。
总之,Druid SQL 解析器是 Druid 中非常重要的一个组件,它将 SQL 查询语句转换成 Druid 的查询表达式,为查询引擎提供了高效、灵活、安全的查询功能。
自定义druid的启动器
当然可以,下面是自定义Druid的启动器的基本步骤:
1.创建一个Maven项目,命名为“xxx-spring-boot-starter”。
2.在项目中定义一个自动配置类,该类要实现Spring Boot提供的自动配置接口(例如:ConditionalOnClass、ConditionalOnProperty等),并配置Druid数据源的相关属性。
```java
@Configuration
@ConditionalOnClass(DruidDataSource.class)
@EnableConfigurationProperties(DruidProperties.class)
public class DruidAutoConfiguration {
private final DruidProperties properties;
public DruidAutoConfiguration(DruidProperties properties) {
this.properties = properties;
}
@Bean(initMethod = "init")
public DruidDataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(properties.getUrl());
dataSource.setUsername(properties.getUsername());
dataSource.setPassword(properties.getPassword());
dataSource.setDriverClassName(properties.getDriverClassName());
dataSource.setInitialSize(properties.getInitialSize());
dataSource.setMaxActive(properties.getMaxActive());
dataSource.setMinIdle(properties.getMinIdle());
dataSource.setMaxWait(properties.getMaxWait());
return dataSource;
}
}
```
其中,`DruidProperties`是一个配置属性类,用于读取我们在`application.properties`或`application.yml`配置文件中配置的Druid数据源相关属性。
3.在resources/META-INF/spring.factories中添加自动配置类。
```properties
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.example.druid.DruidAutoConfiguration
```
4.在pom.xml文件中定义依赖项。
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
```
5.将项目打包,并发布到Maven仓库。
6.在其他Spring Boot应用程序中引入我们自定义的Druid启动器,即可实现自动配置并使用Druid数据源。
需要注意的是,我们在使用自定义的Druid启动器时,需要在`application.properties`或`application.yml`配置文件中配置相应的Druid属性,例如:
```yaml
spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-wait=60000
```
这样,我们就可以通过自定义Druid的启动器来方便地管理和使用Druid数据源了。