Druid 的简介
Druid 首先是一个数据库连接池. Druid 是目前最好的数据库连接池, 在功能, 性能, 扩展性方面, 都超过其他数据库连接池, 包括 DBCP,C3P0,BoneCP,Proxool,JBoss DataSource.Druid 已经在阿里巴巴部署了超过 600 个应用, 经过一年多生产环境大规模部署的严苛考验. Druid 是阿里巴巴开发的号称为监控而生的数据库连接池!
Druid 的功能
1, 替换 DBCP 和 C3P0.Druid 提供了一个高效, 功能强大, 可扩展性好的数据库连接池.
2, 可以监控数据库访问性能, Druid 内置提供了一个功能强大的 StatFilter 插件, 能够详细统计 SQL 的执行性能, 这对于线上分析数据库访问性能有帮助.
3, 数据库密码加密. 直接把数据库密码写在配置文件中, 这是不好的行为, 容易导致安全问题. DruidDruiver 和 DruidDataSource 都支持 PasswordCallback.
4,SQL 执行日志, Druid 提供了不同的 LogFilter, 能够支持 Common-Logging,Log4j 和 JdkLog, 你可以按需要选择相应的 LogFilter, 监控你应用的数据库访问情况.
5, 扩展 JDBC, 如果你要对 JDBC 层有编程的需求, 可以通过 Druid 提供的 Filter 机制, 很方便编写 JDBC 层的扩展插件.
所以 Druid 可以:
1, 充当数据库连接池.
2, 可以监控数据库访问性能
3, 获得 SQL 执行日志
在 spring boot 基础上开始配置:
1. 引入当前最新的版本, 这里我们使用的 maven
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.12</version>
- </dependency>
2. 新建一个配置类, 如下:
- @Configuration// 在项目启动时可以初始化配置
- public class DruidConfiguration {
- @Bean
- public ServletRegistrationBean staViewServlet(){
- ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),
- "/druid/*");
- // 白名单为空允许任何 ip 访问
- servletRegistrationBean.addInitParameter("allow","127.0.0.1");
- //ip 黑名单 (存在共同时, deny 优先于 allow): 如果满足 deny 的即提示: Sorry you are not permitted...
- servletRegistrationBean.addInitParameter("deny","127.0.0.2");
- // 登录查看信息的账号密码
- servletRegistrationBean.addInitParameter("loginUsername","druid");
- servletRegistrationBean.addInitParameter("loginPassword","druid");
- // 是否能够重置数据
- servletRegistrationBean.addInitParameter("resetEnable","true");
- return servletRegistrationBean;
- }
- @Bean
- public FilterRegistrationBean statFilter(){
- FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new webStatFilter());
- // 添加过滤规则
- filterRegistrationBean.addUrlPatterns("/*");
- // 添加不需要忽略的格式信息
- filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpn,*.png,*.CSS,*.ico,/druid/*");
- return filterRegistrationBean;
- }
- // 配置数据库的基本连接信息
- @Bean
- @Primary
- @ConfigurationProperties(prefix = "spring.datasource")// 在 application.properties 中读取配置信息注入到 DruidDataSource 里
- public DataSource dataSource(){
- DruidDataSource druidDataSource = DataSourceBuilder.create().type(DruidDataSource.class).build();
- druidDataSource.setInitialSize(3);// 初始化物理连接的数量
- try {
- druidDataSource.addFilters("stat,wall");//stat 是 sql 监控, wall 是防火墙 (如果不添加则监控无效), 不能添加 log4j 不然会出错
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return druidDataSource;
- }
- }
在 application.properties 中添加如下配置信息:
- spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
- spring.datasource.driver-class-name=com.MySQL.jdbc.Driver
- spring.datasource.url=jdbc:MySQL://localhost:3306/mrbshiro?characterEncoding=UTF-8
- spring.datasource.username=root
- spring.datasource.password=123456
上面这些配置会自动注入到我们上面的 DruidDataSource 实列里.
这样就可以访问 projectUrl/druid 进行登录了
来源: https://www.cnblogs.com/-brl/p/10252890.html