这样就有了父子之分 , 这样指责就更加清晰 , 子容器就负责 web 部分 , 父容器则是通用的一些 bean 。
也正是有了父子之分 , 如果有些人没把 controller 扫包的配置写在 spring-servlet.xml, 而写到了 service.xml 里 , 那就会把 controller 添加到父容器里 , 这样子容器里面就找不到了 , 请求就 404 了 。
当然 , 如果你把 services 和 repositories 添加到子容器是没影响的 , 不过没必要 , 分层还是比较好的方式 。
对了 , 子容器可以用父容器的 Bean , 父容器不能用子容器的 Bean 。
你了解的 Spring 都用到哪些设计模式工厂模式 , 从名字就看出来了 BeanFacotry 。
模板方法 , 什么 JdbcTemplate、RestTemplate。
代理模式 , AOP 整的都是代理 。
单例 , 这都不需要说了 。
责任链模式 , 比如拦截器 。
观察者模式 , Spring里的监听器 。
适配器模式...SpringMVC 提到的 handlerApdaper 。
太多啦...
Spring 事务有几个隔离级别从源码定义我们可以看到 , 一共有 5 种隔离级别 , 而 DEFAULT 就是使用数据库定义的隔离级别 。
其他几种分别是:读未提交、读已提交、可重复读、序列化 。
具体几个隔离级别的概念我就不介绍了 , 应该都很清楚 。
不清楚的看我这篇 MySQL 的文章:mysql总结 。
文章的后半段有写 。
Spring 有哪几种事务传播行为?从源码来看 , 一共有 7 种事务传播行为:
- PROPAGATION_REQUIRED(默认) 如果当前存在事务 , 则用当前事务 , 如果没有事务则新起一个事务 。
- PROPAGATION_SUPPORTS 支持当前事务 , 如果不存在 , 则以非事务方式执行 。
- PROPAGATION_MANDATORY 支持当前事务 , 如果不存在 , 则抛出异常 。
- PROPAGATION_REQUIRES_NEW 创建一个新事务 , 如果存在当前事务 , 则挂起当前事务 。
- PROPAGATION_NOT_SUPPORTED 不支持当前事务 , 始终以非事务方式执行 。
- PROPAGATION_NEVER 不支持当前事务 , 如果当前存在事务 , 则抛出异常 。
- PROPAGATION_NESTED 如果当前事务存在 , 则在嵌套事务中执行 , 内层事务依赖外层事务 , 如果外层失败 , 则会回滚内层 , 内层失败不影响外层 。
其实答案就几个字:控制事务的边界 。
- 微信又出新功能,事关支付限额
- 户外|“小眼镜”增多 专家支招教你科学用眼
- 单项冠军|再添三家“小巨人”,青岛高新区梯度培育见成效
- 领军企业|30个!中国科协发布2022年科技领域重大问题难题
- 零售业|确定涨价!iPhone14四款新机全面涨价!国行也在其中!
- 芯片|外媒:老美“加码”相关限制后,更为“棘手”的后果已经出现!
- 我国首个海洋油气装备投产!还有一批重大工程取得新进展→
- 苹果|苹果多款新品已提上日程
- 疫情期间获近亿元A轮投资,青浦这家企业数字化服务商乘“长三角数字干线”发展快车逆势上扬
- 【选购技巧】最高可省1600 苹果暑期教育优惠季保姆级攻略
