面试
七胜文状元兼参谋将军
这个作者很懒,什么都没留下…
展开
-
@Transactional 事务不生效原因
1.方法不是public的 2.事务被try() catch{} 吃掉了 3.数据库引擎不支持事务 4.没有被 Spring 管理 类上面么有@service 或者@compent 5. 自身调用的问题 6. 数据源没有配置事务管理器 @Transactional 实现原理: 1) 事务开始时,通过AOP机制,生成一个代理connection对象, 并将其放入 DataSource 实例的某个与 DataSourceTransactionManager 相关的某处容器中。 在接下来的整个事原创 2021-03-30 09:26:10 · 643 阅读 · 0 评论 -
分布式的缓存一致性问题
缓存如何使用 引入缓存后,读操作会先去缓存中看下,如果没有命中缓存,才去读取数据库,然后把读取出来的数据再放到缓存中去,这样下一次读操作就可以命中缓存了,如果命中缓存,就可以直接把数据返回出去了。 缓存数据一致性解决方案 无论是双写模式还是失效模式,多个实例同时更新都会导致数据不一致问题; 1、如果是用户纬度数据(订单数据、用户数据),这种并发几率非常小,不用考虑这个问题,缓存数据加上过期时间,每隔一段时间触发读的主动更新即可; 2、如果是菜单,商品介绍等基础数据,也可以去使用canal订阅binlog的原创 2021-02-02 17:32:10 · 193 阅读 · 0 评论 -
面试总结
Spring 框架中用到了哪些设计模式? 工厂设计模式 : Spring使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。 代理设计模式 : Spring AOP 功能的实现。 单例设计模式 : Spring 中的 Bean 默认都是单例的。 模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。 包装器设计模式 : 我们的项目需要连接多个数原创 2020-09-18 14:45:32 · 71 阅读 · 0 评论