SSM框架常见面试题汇总

SSM框架常见面试题汇总

Spring篇


  1. Spring的作用:
    • 作用:Spring(轻量级框架),是一个Bean工厂,用于管理Bean的生命周期、框架集成
    • 核心:IOC(service反转给acton)/DI(dao–>service)AOP
  2. IOC的作用:解决对象之间的依赖问题,通过注解 / XML文件将不同的对象进行关联,降低耦合度
  3. 配置文件中的内容:
    • 开启事务注解驱动
    • 事务管理器
    • 开启注解功能,并配置扫描包
    • 配置数据库
    • 配置SQL会话工厂,别名,映射文件
  4. 返回具体数据类型的注解:
    @RequestBody
  5. DI的3种方式:
    • 构造器注入(构造方法) ——XML
    • 属性的setter方法注入 ——XML
    • 接口注入
  6. Spring中有哪些模式:
    • 工厂模式:通过方法创建Bean
    • 单例模式:每个Bean的作用域都是单例
    • 代理模式:例如AOP

注:Bean的作用域:
singleton, prototype;
request, webSocket;
application, session;

注:单例:在整个运行过程中只有一个实例

  1. IOC的原理:
    • 通过Java反射机制生成对象注入

Java反射机制:
动态获取对象所需要的属性和方法

  1. AOP的原理:
    • 动态代理

动态代理
JDK动态代理(Spring默认)、CGLIB动态代理

Spring MVC篇


  1. Spring MVC的控制器是单例模式,具有什么问题?如何解决?
    • 问题:多线程访问时的线程安全问题
    • 解决方案:不用同步,控制器里不要写字段
  2. SpringMvc中函数的返回值
    • 返回值:String、ModelAndView对象、List、Set
  3. Spring MVC工作流程:

Mybatis篇


  1. Mybatis与Ibatis的区别:
    • Mybatis是Ibatis的升级版本
  2. Mybatis的接口绑定:
    • 实现了DAO层与XML文件的绑定,自动生成数据操作的相关接口。
  3. 注解和XML绑定的使用情况:
    • 当SQL语句很简单时,使用注解
  4. Mybatis的核心类是SqlSession
  5. Mybatis的优势:
    • 独立SQL语句
    • 将JDBC、底层API进行封装,将结果集自动转换成pojo
    • 灵活编写SQL语句
  6. ${}#{}的区别?
    • ${}: 简单字符串替换,把${}直接替换成变量的值,再将其进行预编译
    • #{}: 先将sql中的#{}替换成?, 再进行预编译,可以防止SQL注入
  7. Mybatis工作原理图:

  目录