这样就有了父子之分 , 这样指责就更加清晰 , 子容器就负责 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 如果当前事务存在 , 则在嵌套事务中执行 , 内层事务依赖外层事务 , 如果外层失败 , 则会回滚内层 , 内层失败不影响外层 。
其实答案就几个字:控制事务的边界 。
- Java|马斯克:俄罗斯制造的RD-180发动机“非常棒”,SpaceX不受影响
- 反诈系列漫画--兼职刷单诈骗
- 清明假期,给您提个醒!
- 一个订单转手就赚上万元,“黄牛”霸屏新能源二手车平台
- 温馨提示!
- Java|自媒体行业「深度干货」,你需要知道的十件事
- 云蒙湖畔桃花盛开
- 小米科技|如果你能接受这个缺点,4000以内还有谁能和这款手机一争呢?
- 腾讯|年收入人均115万元,近一半员工是硕士,职工待遇超过华为腾讯?
- 红米手机|小米悄然上架百元神机,5000mAh+6.53英寸护眼大屏,待机长达35天