美文网首页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