美文网首页Java 杂谈Java
2019秋招在即,总结阿里高频Spring MVC 面试题,备战

2019秋招在即,总结阿里高频Spring MVC 面试题,备战

作者: 一个小素 | 来源:发表于2019-08-26 16:48 被阅读0次

对于java程序员来说,Spring MVC框架是用于开发Web应用程序的最流行的Java框架之一。在过去十年中,它已成为开发Java Web应用程序的框架。Spring MVC是基于经典的MVC(模型 - 视图 - 控制器)设计模式。由于其广泛的普及性和实用性,大多数Java开发工作需要对Spring和Spring MVC有一定的了解。各位Java从业者想趁最近秋招跳槽Spring MVC方面一定要准备充分哦!!!

什么是springMVC?作用?

springMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校验等)。

为什么要用springMVC?

基本上,框架的作用就是用来简化编程的,相对于servlet来说,获取表单参数,响应请求等变得更简单了。

说出spring mvc底层执行流程(工作原理)

说说spring mvc中常用注解有哪些,分别什么作用?

  • @Controller
    标识这个类是一个控制器

  • @RequestMapping
    给控制器方法绑定一个uri

  • @ResponseBody
    将java对象转成json,并且发送给客户端

  • @RequestBody
    将客户端请求过来的json转成java对象

  • @RequestParam
    当表单参数和方法形参名字不一致时,做一个名字映射

  • @PathVarible
    用于获取uri中的参数,比如user/1中1的值

  • Rest风格的新api

  • @RestController

  • @Controller+ @ResponseBody

  • @GetMapping@DeleteMapping@PostMapping

  • @PutMapping

其他注解

  • @SessionAttribute
    声明将什么模型数据存入session

  • @CookieValue
    获取cookie值

  • @ModelAttribute
    将方法返回值存入model中

  • @HeaderValue
    获取请求头中的值

springmvc和strus2的区别?

  1. 入口不同:
    springmvc 入口是Servlet。struts2入口是filter。
  2. 生命周期不同:
    spring mvc Controller是单例的。所以不能使用成员变量获取参数。所以效率高。
    struts action是多例的。所以可以使用成员变量获取参数。所以效率低。

如何在spring mvc实现RESTful 服务

  1. 导入jackson2包
  2. 开启注解驱动<mvc:annotation-driven/>
  3. json交互=@RequestBody @ResponseBody
    spring mvc如何返回JSON数据
    在处理方法前加上 @ResponseBody注解

或者
在控制器上使用 @RestController

什么是拦截器?有什么用?spring mvc如何定义拦截器?

  • what:
    类似于filter的一个对象,用于预处理以及后处理处理器(控制器)。

  • how:
    新建class实现HandlerInterceptor重写三个方法preHandlerpostHandlerafterCompletionspringmvc.xml中配置拦截器

2 spring mvc中如何做表单数据校验?

  • 环境搭建

    1. springmvc.xml中配置一个validator
    2. <mvc:annotation-driven validator="validator"/>;
  • 给Entity添加校验规则
    @NotEmpty
    @Length
    ...
    用BindingResult 紧接着entity之后来接收错误信息。
    test(User user,BindingResult rs)

请解释Spring Bean的生命周期?

  1. 通过构造器或工厂方法创建 Bean 实例
  2. 为 Bean 的属性设置值和对其他 Bean 的引用
  3. 将 Bean 实 例 传 递 给 Bean 后 置 处 理 器 的postProcessBeforeInitialization 方法
  4. 调用 Bean 的初始化方法(init-method)
  5. 将 Bean 实 例 传 递 给 Bean 后 置 处 理 器 的postProcessAfterInitialization 方法
  6. Bean 可以使用了
  7. 当容器关闭时, 调用 Bean 的销毁方法(destroy-method)

------完结------
感谢你的阅读,点赞、关注一下再走吧!!!

相关文章

网友评论

    本文标题:2019秋招在即,总结阿里高频Spring MVC 面试题,备战

    本文链接:https://www.haomeiwen.com/subject/zakdectx.html