首页 > 其他分享 >ssm面试题

ssm面试题

时间:2022-12-07 14:11:06浏览次数:37  
标签:面试题 调用 视图 ssm Controller 缓存 ModelAndView DispatcherServlet

Spring两大核心

IoC控制反转和AOP面向切面编程

什么是IoC

Spring通过IoC容器来管理对象的实例化和初始化,以及对象从创建到销毁的整个生命周期

什么是AOP(和场景)

将与业务无关的可重复的代码抽取出来,单独维护成一个切面类。并通过声明的方式,定义切面类的代码以何种方式、作用在业务切入点的哪个位置。
(场景:日志、事务等)

Spring两种IoC容器

BeanFactory 和 ApplicationContext

过滤器和拦截器的区别

SpringMVC常用注解

@Controller
@RequestMapping("/def")
@GetMapping("/getReq")
@PostMapping("/postReq")
@ResponseBody
@RequestBody

向浏览器返回字符串应该怎么设置?

@RequestMapping(value = "speak",produces = "text/html;charset=utf-8")

什么是DI依赖注入

Spring MVC 的工作流程:

1)客户端请求提交到调度器DispatcherServlet;
2)由DispatcherServlet调度器解析URL,调用URL相对应的映射处理器HandlerMapping
3)DispatcherServlet将请求提交到控制器Controller;
4)Controller调用业务逻辑(service层和dao层)处理后,向DispatcherServlet返回ModelAndView;
5)DispatcherServlet根据ModelAndView获取相对应的视图解析器ViewResolve,找到ModelAndView指定的视图view;
6)ViewResolver将数据渲染到视图;
7)dispatcherServlet调度器响应视图显示到客户端;

ModelAndView类作用:

1)存储向视图页面发送的参数,类似HttpServletRequest对象的setAttribute()方法
2)指定要请求的客户端页面名称,类似HttpServletRequest对象的请求转发

拦截器工作流程

preHandle:在控制器controller处理请求之前被调用
1 该方法的返回值是布尔值Boolean 类型的,当它返回为false 时,表示请求结束,
后续的Interceptor 和Controller 都不会再执行;
2 当返回值为true 时就会继续调用下一个Interceptor 的preHandle 方法,
如果已经是最后一个Interceptor 的时候就会是调用当前请求的Controller方法
postHandle:在controller处理请求 结束之后,在dispatcherServlet进行视图数据渲染之前,调用该方法
所以我们可以在这个方法中对Controller处理之后的ModelAndView对象进行操作
afterCompletion:在DispatcherServlet渲染完成对应的视图之后执行
这个方法的主要作用是用于进行资源清理工作

3.1 @Autowired和@Resource的区别

通过@Resource或者@Autowired注解获取bean对象
@Autowired默认按类型注入
@Resource 默认根据名称(对象名)注入(即变量名称要与容器中的实例别名一致),
当找不到与名称匹配的bean时才会按类型注入

2.2 #{}与${}的区别

#{}是编译好SQL语句再取值,是经过预编译的,是安全的。
#{}引用参数的时候,Mybatis会把这个参数认为是一个字符串,并自动加上单引号''
${}是取值以后再去编译SQL语句;
${}是未经过预编译的,仅仅是取变量的值,是不安全的,存在SQL注入风险

对mybatis事务有了解吗

mybatis缓存区别

一级特征:
1 一级缓存是默认开启的;
2 一级缓存只是相对于同一个SqlSession而言;
3 在一个会话中,调用 insert、update、delete 语句时,会话中的缓存会被刷新;
二级特征:
1 二级缓存默认是关闭的;
2 二级缓存是Application(应用程序)级别的缓存;
3 二级缓存要求返回的POJO(简单java类)必须是可序列化的;

标签:面试题,调用,视图,ssm,Controller,缓存,ModelAndView,DispatcherServlet
From: https://www.cnblogs.com/xiaoto9426/p/16955079.html

相关文章

  • 多线程--面试题整理
    简述线程,程序、进程的基本概念线程:与进程相似,但线程是比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空......
  • 社招前端经典vue面试题汇总
    用过pinia吗?有什么优点?1.pinia是什么?在Vue3中,可以使用传统的Vuex来实现状态管理,也可以使用最新的pinia来实现状态管理,我们来看看官网如何解释pinia的:Pinia是Vue的......
  • 前端react面试题指北
    在调用setState之后发生了什么状态合并,触发调和:setState函数之后,会将传入的参数对象与当前的状态合并,然后出发调用过程根据新的状态构建虚拟dom树经过调和过程,rea......
  • react面试题总结一波,以备不时之需
    React组件的构造函数有什么作用?它是必须的吗?构造函数主要用于两个目的:通过将对象分配给this.state来初始化本地状态将事件处理程序方法绑定到实例上所以,当在Reactcl......
  • 前端面试题之Promise解析
    Promise想必大家都十分熟悉,想想就那么几个api,可是你真的了解Promise吗?本文根据Promise的一些知识点总结了十道题,看看你能做对几道。以下promise均指代Promise实例......
  • ssm框架集成多数据源
     原理使用springaop进行织入  1.创建3个类3importjava.lang.annotation.*;4/**5*多数据源6*@authormengxu7*@version2022-12-18*/......
  • 【重温SSM框架系列】11 - Mybatis快速入门(JDBC、开发步骤,配置文件)
    Mybatis快速入门​​准备工作​​​​原始JDBC操作​​​​查询​​​​插入​​​​mybatis简介与开发步骤​​​​1.引入mybatis依赖包​​​​2.创建表和对应实体类​......
  • 【重温SSM框架系列】10 - Spring AOP开发的两种方式(基于XML、基于注解)
    AOP开发​​概述​​​​基于XML的AOP开发​​​​1.导入AOP依赖包​​​​2.创建目标类和接口​​​​3.创建切面类(增强方法类)​​​​4.将目标类和切面类交给Spri......
  • Java常见面试题
    1. Java中sleep和wait的区别①这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sle......
  • go面试题总结
    1.tcp/ip3次握手和4次挥手3次握手需要客户端确认,因为服务器端不确定对方是否收到,所以客户端必须发送ack确认一下为什么需要4次挥手,客户端发起fin+ack到服务器,服务端发起ac......