Alibaba Druid

Alibaba Druid

“Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生, 内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置 Logging能诊断Hack应用行为。”这是来自Alibaba Druid 官方介绍。正如官方介绍的一样,它的主要功能如下几点:

  • 详细的监控
  • ExceptionSorter,针对主流数据库的返回码都有支持
  • SQL 防注入
  • 内置加密配置
  • 众多扩展点,方便进行定制

我们有两种方式去配置Alibaba Druid。
第一种是直接配置 DruidDataSource 。
第二种是通过 druid-spring-boot-starter 来配置,即通过配置文件application.properties来配置。

spring.output.ansi.enabled=ALWAYS   

spring.datasource.url=jdbc:h2:mem:foo
spring.datasource.username=sa
spring.datasource.password=n/z7PyA5cvcXvs8px8FVmBVpaRyNsvJb3X7YfS38DJrIg25EbZaZGvH4aHcnc97Om0islpCAPc3MqsGvsrxVJw==    

spring.datasource.druid.initial-size=5  //初始的连接池大小
spring.datasource.druid.max-active=5	//最大活跃连接数
spring.datasource.druid.min-idle=5		//最小的idle

//Filter 配置 
spring.datasource.druid.filters=conn,config,stat,slf4j  //全部使⽤用默认值(config:实现密码加解密  stat:统计功能  slf4j:输出日志)

spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${public-key}  //
spring.datasource.druid.filter.config.enabled=true	//

spring.datasource.druid.test-on-borrow=true		//获取连接池进行检查
spring.datasource.druid.test-on-return=true		//归还连接池进行检查
spring.datasource.druid.test-while-idle=true	//在idle的时候进行检查

//SQL 防注⼊
spring.datasource.druid.filter.wall.enabled=true
spring.datasource.druid.filter.wall.db-type=h2    //数据库使用h2
spring.datasource.druid.filter.wall.config.delete-allow=false   //不能做删除操作
spring.datasource.druid.filter.wall.config.drop-table-allow=false	  //不能做删表的操作

//密码加密 
spring.datasource.password=<加密密码>
spring.datasource.druid.filter.config.enabled=true
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=<public-key>

Druid的扩展点为3大点:

  • 用于定制连接池操作的各种环节
  • 可以继承 FilterEventAdapter 以便方便地实现 Filter
@Slf4j
public class ConnectionLogFilter extends FilterEventAdapter {

    @Override
    public void connection_connectBefore(FilterChain chain, Properties info) {
        log.info("BEFORE CONNECTION!");
    }

    @Override
    public void connection_connectAfter(ConnectionProxy connection) {
        log.info("AFTER CONNECTION!");
    }
}

在这里插入图片描述
我们可以看到,每次建立连接之前和之后都会在控制台输出日志
使用Alibaba Druid的时候,我们需要在pom文件把HikariCP排除掉

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>HikariCP</artifactId>
					<groupId>com.zaxxer</groupId>
				</exclusion>
			</exclusions>
		</dependency>

然后,再引入

<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.10</version>
	</dependency>
  • 修改 META-INF/druid-filter.properties 增加 Filter 配置
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值