spring第9课,spring对DAO的支持

翻了一下,上一次的学习时间还是2025-06-18。中断的原因,*准备银从考试2个星期,*准备公司考试2个星期,出差2个星期,小孩暑期过来玩2个星期。2个月一晃而过。。。

第一节:Spring 对 JDBC 的支持(JDBC是最原始的连接DB的技术)

1,配置数据源 dbcp;

(Database Connection Pool)数据库连接池技术的实现库,属于Apache Commons项目子模块。

优势:

  • 预初始化固定数量的数据库连接(initialSize)
  • 复用空闲连接(减少90%+的连接创建开销)
  • 动态伸缩连接池(maxActive, minIdle控制上下限)

典型应用场景(传统Java Web项目-SSH/SSM框架整合):

Spring配置文件中声明BasicDataSource注入到SqlSessionFactory

  • Tomcat等应用服务器内嵌DBCP作为默认连接池(旧版本)

短板

  • 性能瓶颈
    • 锁竞争激烈(synchronized全局锁)导致高并发下TPS骤降
    • 连接回收算法落后(LRU策略 vs HikariCP的FastList优化)
  • 监控能力缺失
    • 无实时连接数/等待数统计
    • 无法追踪SQL执行链路(对比Druid的SQL防火墙功能)
  • 容器化支持弱
    • 缺乏K8s环境下的自动扩缩容机制
  • 替代者:druid

2,使用模板 JdbcTemplate;(原来的一些连接,抛异常等处理被spring封装了)

bean.xml定义时多引入下context空间的内容

复制代码
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd"
复制代码
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd"

定义数据源连接池

复制代码
<!-- 定义 dataSource-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
       <property name="driverClassName" value="${jdbc.driverClassName}"/>
       <property name="url" value="${jdbc.url}"/>
       <property name="username" value="${jdbc.username}"/>
       <property name="password" value="${jdbc.password}"/>
   </bean>
相关推荐
这个DBA有点耶2 小时前
innodb_autoinc_lock_mode的三种模式:批量插入时自增锁的持有逻辑与调优
数据库·架构·代码规范
迷途小羔羊2 小时前
项目概述
java·javascript·后端
我命由我123452 小时前
5-1.Python 编码进阶 - 函数进阶(参数、返回值、递归、函数作为参数传递、lambda 匿名函数)
java·服务器·数据库·后端·python·java-ee·python3.11
小蒜学长2 小时前
基于Spring Boot+Vue3的在线游戏技术指导师匹配系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·在线游戏技术指导
文丑颜不良啊2 小时前
LeetCode226~250题目解析
java·leetcode
Dovis(誓平步青云)2 小时前
逆变器报警却找不到板子,热斑图怎样定位到具体组串
java·开发语言·人工智能·机器学习·卷积神经网络
摇滚侠3 小时前
《Java并发编程之美》第 2 章 并发编程的其他基础知识 阅读笔记 3
android·java·笔记
Web3&Basketball3 小时前
DeepSeek V4.1 Flash 实测:Token 砍半、Search API 跑通
数据库·人工智能·python·大模型·api调用·deepseek·推理优化
川石课堂软件测试3 小时前
涨薪技术|0到1学会性能测试第9课-HTTP响应统计
数据库·功能测试·网络协议·http·kubernetes·单元测试·测试用例
墨子夕3 小时前
设计模式——Java × Python 双语言精讲 · 23 个经典模式 + 现代演进(第一篇)
java·python·设计模式