SSM 的 基本原理与面试相关
个人博客网:https://wushaopei.github.io/ (你想要这里多有)
一、MyBatis
1、Mybatis出现最多的问题是什么?
问题: 在XML配置文件中语句的书写与对象中定义的不一致,导致编译报错。
2、MYbatis的分页实现原理?不可能功能都去组装limit?
Mybatis的逻辑分页比较简单,简单来说就是取出所有满足条件的数据,然后舍弃掉前面offset条数据,然后再取剩下的数据的limit条
二、Spring
1、Spring的两个特性是什么?
- IOC与AOP
- Spring的核心是IOC和AOP,控制反转将对象的生成不通过类new交给IOC容器,通过反射动态的去创建调用对象;面向切面编程通过代理模式,实现了业务和服务的分离,扩展了程序功能,如日志,权限等。
2、IOC 控制反转是什么?
创建对象实例的控制权从代码控制剥离到IOC容器控制,实际上你在xml文件控制,侧重于原理。
spring中IOC与DI 是密切不分的,即依赖注入:创建对象实例时,为这个对象注入属性值或其他对象实例,侧重于实现。
IOC又称DI,把类内部的依赖放到类外部,降低代码的耦合(解耦),把对象生成交给XML,便于修改和维护,实现了对象的热插拔。
3、什么是AOP ?
在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等。
Aop的代理:aop框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以使JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类。
4、一个类中,第一个方法没加事务,第二个方法加事务,如果方法一调用方法二时事务会生效吗?
不会,在一个service内部,事务方法之间的嵌套调用,普通方法和事务方法之间的嵌套调用,都不会开启新的事务。
同一个类中是不会开启事务的,不同的类中才会开启事务的;或者把注解加到类名上面。
5、事务的传播特性,都有哪些类型?
传播特性有7种,mandatory、nested、never、not_supported、requires_new、requires、
6、Spring的常用注解?
三、SpringMVC
1、SpringMVC的工作原理是什么?
浏览器发送请求到DispatcherServlet(前端控制器),调用HandlerMapping(处理映射器)访问XML或注解返回Handler给DispatcherServlet,再把Handler给HandlerAdapter(处理适配器)去访问对应的Controller(后端控制器),返回ModelAndView给DispatcherServlet,再把ModelAndView给ViewReslover(视图解析器)解析返回具体的View给DispatcherServlet,最后由DispatcherServlet渲染视图(将model填充到view)响应用户。