做pc网站会连带手机版网站制作的服务怎么样
- 作者: 五速梦信息网
- 时间: 2026年03月21日 04:57
当前位置: 首页 > news >正文
做pc网站会连带手机版,网站制作的服务怎么样,吴忠网站建设公司,WordPress里面自定义功能Druid#xff08;全称 Alibaba Druid#xff09;是阿里巴巴开源的高性能数据库连接池#xff0c;同时也是数据库监控与防御工具。它不仅实现了传统连接池的核心功能#xff08;如连接复用、生命周期管理#xff09;#xff0c;还提供了丰富的扩展能力#xff08;如 SQ…Druid全称 Alibaba Druid是阿里巴巴开源的高性能数据库连接池同时也是数据库监控与防御工具。它不仅实现了传统连接池的核心功能如连接复用、生命周期管理还提供了丰富的扩展能力如 SQL 监控、慢查询分析、SQL 防火墙、连接泄漏检测等是 Java 生态中最主流的数据库连接池之一尤其在 Spring Boot 项目中广泛使用。 一、Druid 的核心作用 Druid 的核心价值在于高效管理数据库连接并通过扩展功能解决数据库使用中的常见问题。具体作用可分为以下几类
- 连接池基础功能 连接复用预先创建并缓存一定数量的数据库连接避免频繁创建/销毁连接的开销TCP 三次握手、数据库认证等耗时操作。连接生命周期管理自动回收空闲连接、验证连接有效性防止“僵尸连接”、控制最大/最小连接数避免资源浪费或耗尽。线程安全通过同步机制保证多线程环境下连接的正确分配与回收。
- 性能优化 连接池状态监控实时统计连接池的使用情况活跃连接数、空闲连接数、等待队列长度等帮助定位连接泄漏或配置不合理问题。慢查询统计记录执行时间超过阈值的 SQL辅助优化数据库性能。预编译语句缓存缓存常用 SQL 的预编译语句PreparedStatement减少重复解析 SQL 的开销。
- 安全与防御 SQL 防火墙通过规则过滤危险 SQL如 DROP TABLE、TRUNCATE防止 SQL 注入攻击需自定义规则。连接泄漏检测跟踪未关闭的连接记录泄漏的调用栈帮助开发者快速定位未释放连接的代码。密码加密支持对数据库密码进行加密存储如 AES避免明文密码泄露。 二、Druid 的典型使用场景 Druid 适用于需要高性能数据库访问、详细监控或安全防护的场景例如 生产环境的数据库连接管理替代 HikariCP、DBCP 等传统连接池微服务架构中对数据库操作的统一监控与治理需要防御 SQL 注入攻击的关键业务系统慢查询定位与 SQL 性能优化场景。 三、Druid 的用法详解以 Spring Boot 为例 在 Spring Boot 项目中集成 Druid 非常简单主要分为添加依赖、配置参数、使用与扩展三个步骤。 1. 添加 Maven 依赖 在 pom.xml 中引入 Druid 的 StarterSpring Boot 2.x 推荐使用 druid-spring-boot-starter dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.18/version !– 最新版本可查 Maven 仓库 – /dependency !– 若需监控页面需额外引入 servlet 依赖Spring Boot 已内置 – 2. 配置 Druid 参数 在 application.yml 或 application.properties 中配置 Druid 连接池参数。以下是核心配置项说明 配置项类型说明推荐值/默认值urlString数据库连接 URL必填-usernameString数据库用户名必填-passwordString数据库密码必填支持加密-driver-class-nameString数据库驱动类名如 com.mysql.cj.jdbc.Driver自动推断可选initial-sizeint初始化时创建的连接数5默认max-activeint最大活跃连接数连接池能提供的最大连接数20默认min-idleint最小空闲连接数保持的空闲连接数5默认建议等于 initial-sizemax-waitlong获取连接的最大等待时间毫秒超时抛异常30000默认validation-queryString验证连接有效性的 SQL如 MySQL 的 SELECT 1无建议配置test-while-idleboolean空闲时是否验证连接有效性配合 time-between-eviction-runs-millistrue推荐time-between-eviction-runs-millislong空闲连接检测周期毫秒用于回收过期连接60000默认1分钟filtersString启用 Druid 的扩展功能如监控、防火墙stat,wall,log4j2常用组合stat-view-servlet.enabledboolean是否启用监控页面Web 界面false默认需手动开启stat-view-servlet.url-patternString监控页面的访问路径/druid/*默认stat-view-servlet.login-usernameString监控页面的登录用户名-需配置stat-view-servlet.login-passwordString监控页面的登录密码-需配置 示例配置application.yml spring:datasource:url: jdbc:mysql://localhost:3306/mydb?useUnicodetruecharacterEncodingutf-8useSSLfalseserverTimezoneAsia/Shanghaiusername: rootpassword: 123456 # 实际生产环境建议加密driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource # 显式指定 Druid 数据源可选Starter 自动配置druid:initial-size: 5max-active: 20min-idle: 5max-wait: 30000validation-query: SELECT 1test-while-idle: truetime-between-eviction-runs-millis: 60000# 启用监控、SQL 防火墙、慢查询统计filters: stat,wall,slf4j# 监控页面配置stat-view-servlet:enabled: trueurl-pattern: /druid/login-username: adminlogin-password: admin123# SQL 防火墙阻止 DROP、TRUNCATE 等危险操作web-stat-filter:enabled: trueurl-pattern: / 3. 使用 Druid 连接池 在 Spring Boot 中Druid 会自动配置为 DataSource Bean无需手动创建。业务代码通过 Autowired 注入 JdbcTemplate 或 MyBatis 的 SqlSessionFactory 即可使用与普通连接池用法一致 Service public class UserService {Autowiredprivate JdbcTemplate jdbcTemplate; // 由 Druid 数据源驱动public User getUserById(Long id) {return jdbcTemplate.queryForObject(SELECT * FROM user WHERE id ?,new Object[]{id},(rs, rowNum) - new User(rs.getLong(id),rs.getString(name),rs.getString(email)));} } 4. 高级功能使用 Druid 的扩展功能如监控、防火墙需要额外配置以下是常见场景 1查看监控页面 配置 stat-view-servlet.enabledtrue 后启动项目访问 http://localhost:8080/druid输入配置的用户名和密码如 admin/admin123可查看 数据源基本信息连接数、SQL 执行量等SQL 监控执行时间、频率、慢查询列表URI 监控各接口的数据库操作统计Session 监控当前活跃连接数。 2SQL 防火墙防注入 通过 wall 过滤器配置 SQL 规则阻止危险操作。例如在 application.yml 中添加 spring:datasource:druid:filters: wallwall:config:# 禁止 DROP TABLEdrop-table-allow: false# 禁止 TRUNCATEtruncate-allow: false# 允许的 SQL 函数防止恶意函数调用function-allow: substring,concat 3慢查询统计 通过 stat 过滤器记录执行时间超过阈值的 SQL。在配置中添加 spring:datasource:druid:filters: statstat:log-slow-sql: true # 记录慢 SQLslow-sql-millis: 2000 # 超过 2000ms 视为慢 SQLmerge-sql: true # 合并相同 SQL 的统计 慢 SQL 日志会输出到控制台或日志文件取决于日志配置示例 2024-03-10 12:00:00 [Druid-StatLogger] INFO slow sql 2500ms : SELECT * FROM order WHERE create_time 2020-01-01 4连接泄漏检测 Druid 可以跟踪未关闭的连接并记录泄漏的调用栈。配置如下 spring:datasource:druid:remove-abandoned: true # 启用连接泄漏检测remove-abandoned-timeout: 300 # 连接未关闭超过 300 秒则强制回收log-abandoned: true # 记录泄漏连接的创建位置调用栈 当发生连接泄漏时日志会输出类似以下信息 DEBUG com.alibaba.druid.pool.DruidDataSource - abandon connection, ownerThread: http-nio-8080-exec-1, stackTrace: java.lang.Exception: trace DruidConnectionHolderat com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1183)at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1151)at com.example.service.UserService.getUserById(UserService.java:25) # 泄漏连接的代码位置 四、Druid 与其他连接池的对比 特性DruidHikariCPDBCP2连接管理支持连接泄漏检测、慢查询统计轻量级侧重性能传统连接池功能较基础监控能力内置丰富监控SQL、连接、URI仅基础指标活跃连接数等无内置监控需扩展安全功能SQL 防火墙、密码加密无无适用场景需要监控/安全的复杂系统高性能要求的简单场景传统项目兼容配置复杂度较高功能多简单默认配置即可中等 五、注意事项 密码加密生产环境中避免明文存储密码可通过 druid.password.callback 配置密码加密器如 AES。连接泄漏务必在 finally 块或使用 try-with-resources 关闭连接如 Connection.close()否则可能触发连接泄漏报警。监控性能启用过多监控功能如 stat、wall会增加轻微开销生产环境建议按需启用。版本兼容性Druid 与 Spring Boot、数据库驱动版本需匹配如 MySQL 8.0 需使用 com.mysql.cj.jdbc.Driver。 总结 Druid 是一个功能全面的数据库连接池不仅解决了连接管理的核心问题还通过监控、安全等扩展功能成为企业级应用的“瑞士军刀”。在 Spring Boot 项目中只需简单配置即可集成适用于需要高性能、高可靠性或强监控需求的数据库访问场景。
相关文章
-
做pc端网站用什么框架linux WordPress上传插件需要ftp
做pc端网站用什么框架linux WordPress上传插件需要ftp
- 技术栈
- 2026年03月21日
-
做pc端网站包括哪些网站上的二维码怎么做
做pc端网站包括哪些网站上的二维码怎么做
- 技术栈
- 2026年03月21日
-
做pc端网站包括哪些青岛建设工程信息网官网
做pc端网站包括哪些青岛建设工程信息网官网
- 技术栈
- 2026年03月21日
-
做php网站用什么软件好建设银行签名通在网站哪里下载
做php网站用什么软件好建设银行签名通在网站哪里下载
- 技术栈
- 2026年03月21日
-
做php网站用什么软件好手机p2p网站开发
做php网站用什么软件好手机p2p网站开发
- 技术栈
- 2026年03月21日
-
做plc课程设计的网站怎么做的360网站打不开
做plc课程设计的网站怎么做的360网站打不开
- 技术栈
- 2026年03月21日






