这样就有了父子之分 , 这样指责就更加清晰 , 子容器就负责 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|当下最强的拍照旗舰盘点:顶级硬件+自研芯片,选这三款错不了
- 小米科技|2022年,小米最好的三款产品,强烈推荐
- 定级|首份电子“国家标准物质定级证书”出炉
- spring|这次是真的了!微软发布电脑管家,国内用户专供
- 公平竞争环境|规范网络直播营利行为
- 非法金融|根治虚拟货币“挖矿”
- 浏览器|美企动作可真快,鸿蒙刚越“生死线”,华为又被谷歌盯上了
- 【反邪】“传教”“练功”“治病”......所谓的邪教到底长什么样?
- javascript|软件不更新就不让登录不让用,这算不算是流氓软件?
- docker|电猴网【4月2日快报】电商资讯/干货,网罗天下电商新鲜事儿