redis、jvm、mysql、tomcat、springMVC、spring、myBatis

本文介绍了Java开发中的关键技术,包括MyBatis的一级和二级缓存机制,Spring的IoC和AOP概念,以及Spring事务的传播机制。探讨了数据库事务的ACID特性,以及MySQL的优化策略,如SQL优化和索引使用。同时,文章涵盖了Tomcat的内存和线程优化,以及JVM内存模型和JMM的作用。此外,还讨论了Redis的多种应用场景和数据类型,以及Redis的持久化策略。最后,提到了并发编程的三大特性——原子性、可见性和有序性,以及如何避免缓存穿透、缓存击穿和缓存雪崩的问题。
摘要由CSDN通过智能技术生成
  1. MyBatis缓存机制

MyBatis提供了一级缓存和二级缓存

  • 一级缓存:也称为本地缓存,用于保存用户在一次会话过程中查询的结果,用户一次会话中只能使用一个sqlSession,一级缓存是自动开启的,不允许关闭。
  • 二级缓存:也称为全局缓存,是mapper级别的缓存,是针对一个表的查结果的存储,可以共享给所有针对这张表的查询的用户。也就是说对于mapper级别的缓存不同的sqlsession是可以共享的
  1. SpringIoC和AOP

IoC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,IOC(控制反转),将创建对象的控制权由自己把控转移到spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系;

DI(依赖注入),将对象之间的依赖关系交由框架处理,减低组件之间的耦合性,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。

AOP(面向切面编程)可以说是OOP的补充和完善.AOP将相同的业务逻辑按照横向切割的方式抽取到一个独立的模块中形成切面,将通知织入到方法连接点前后,底层使用的是动态代理

  1. Spring事务的传播机制

① PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。

② PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘

③ PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。

④ PROPAGATION_REQUIRES_NEW:创建新事务,无论当前存不存在事务,都创建新事务。

⑤ PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

⑥ PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。

⑦ PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则按REQUIRED属性执行。

  1. 事务的ACID特性

1.原子性:事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用

2.一致性:执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的。

3.隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的

4.持久性:一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响

  1. 什么是脏读、不可重复读及幻读?如何解决?

脏读一个事务读到另一个事务未提交的更新数据

幻读是一个事务在前后两次查询同一范围的时候,后一次查询看到了前一次查询没有看到的行。

不可重复读是指在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据

就是一个事务读到另一个事务修改后并提交的数据。在同一个事务中,对于同一组数据读取到的结果不一致。

脏读:------修改时加排他锁 读取时加共享锁
不可重复度:------读取时加共享锁 写数据时加排他锁
幻读:------范围锁------锁定检索范围为只读 间隙锁

  1. SpringMVC请求处理流程

01、用户发送出请求到DispatcherServlet(前端控制器)。
02、DispatcherServlet收到请求调用HandlerMapping(处理器映射器)。
03、HandlerMapping找到具体的控制器(可查找xml配置或注解配置),生成处理器对象的执行链(如果有),再一起返回给DispatcherServlet。
04、DispatcherServlet调用HandlerAdapter(处理器适配器)。
05、HandlerAdapter经过适配调用具体的处理器(controller)。
06、Controller执行完成返回ModelAndView对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值