版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE 1排名前20的REST和Spring MVC面试题 PAGE 8排名前20的REST和Spring MVC面试题Java开发者在面试中会问到哪些关于REST和Spring MVC问题呢?点这里可以了解到排名前20个的问题你好!最近两个月我分享一些使用Spring开发REST的教程,今天,我将分享一些作为Web开发者经常被问到的关于Spring MVC和REST的面试题给Java开发者。自从 HYPERLINK http:/javarevisited.blogspot.sg/2018/01/how-to-learn-spring-core-spring-mvc-boot-securi
2、ty-framework.html l axzz55IgfKjy8 Spring Framework成为开发Java Web应用和RESTful服务的主流和标准框架后,在高级开发者身上找到对Spring核心和 HYPERLINK http:/javarevisited.blogspot.sg/2018/01/how-to-learn-spring-core-spring-mvc-boot-security-framework.html l axzz55IgfKjy8 Spring MVC 的很好的理解是很被期待的。但是,如果工作内容涉及到REST和Web服务,你也需要有意识去了解如何用Spri
3、ng Framework 开发RESTful Web服务。从Spring3.1开始,框架对RESTful的API提供的许多的支持得到了很多的拥护。其中,HTTPMessageConverter 能根据从类路径探测的库将你的HTTP响应转换成 HYPERLINK http:/javarevisited.blogspot.sg/2018/02/how-to-parse-json-with-date-field-in-java-jackson-example.html l axzz56WGunSwy JSON或 HYPERLINK http:/javarevisited.blogspot.sg/20
4、13/01/jaxb-xml-binding-tutorial-marshalling-unmarshalling-java-object-xml.html l axzz56WGunSwy XML 格式, 如: HYPERLINK http:/javarevisited.blogspot.sg/2018/02/how-to-parse-json-with-date-field-in-java-jackson-example.html Jackson 和 HYPERLINK http:/javarevisited.blogspot.sg/2013/01/jaxb-xml-binding-tuto
5、rial-marshalling-unmarshalling-java-object-xml.html JAXB.Spring对RESTful Web服务也提供自定义的注解,如:RestController ,这使得你自己的REST控制器更简洁,以至于你不需要调用单一的REST API去做那些通用的步骤,就像将响应转换成JSON。实际上开发安全的Spring RESTful Web服务,Spring Security已经给与很好的支持。由于你不能将生活置于一种未尝试的不安全的REST接口,所以安全的基本如 HYPERLINK http:/javarevisited.blogspot.sg/20
6、18/01/how-http-basic-authentication-works-in.html HTTP basic authentication,数字授权, OAuth和JWT 就体现得非常重要。排行前20的Spring REST Web服务面试题这里是一些经常被问到的使用Spring Framework 开发RESTful服务的问题。REST代表着什么?REST代表着抽象状态转移,它是根据http协议从客户端发送数据到服务端,例如:服务端的一本书可 HYPERLINK http:/bit.ly/2zIGzWK 以以XML或JSON格式传递到客户端。然而,假如你不熟悉REST,我建议你先
7、看看REST API design and development 这篇文章来更好的了解它。资源是什么?资源是指数据在REST架构中如何显示的。将实体作为资源公开 ,它允许客户端通过http方法如: HYPERLINK http:/javarevisited.blogspot.sg/2012/03/get-post-method-in-http-and-https.html GET, HYPERLINK /2014/08/difference-between-post-and-get-request.html POST, HYPERLINK /2016/09/when-to-use-put-o
8、r-post-in-restful-web-services.html h PUT, DELETE等读,写,修改和创建资源。什么是安全的REST操作?REST接口是通过HTTP方法完成操作。一些HTTP操作是安全的,如GET和HEAD,它不能在服务端修 改资源.换句话说,PUT,POST和DELETE是不安全的,因为他们能修改服务端的资源。什么是幂等操作? 为什么幂等操作如此重要?有一些HTTP方法,如:GET,不管你使用多少次它都能产生相同的结果,在没有任何一边影响的情况下,发送多个GET请求到相同的 HYPERLINK /2013/01/difference-between-url-uri
9、-and-urn.html h URI 将会产生相同的响应结果。因此,这就是所谓幂等操作。换句话说, HYPERLINK http:/javarevisited.blogspot.sg/2016/05/what-are-idempotent-and-safe-methods-of-HTTP-and-REST.html POST方法不是幂等操作 ,因为如果发送多个POST请求,它将在服务端创建不同的资源, 但是,假如你用PUT更新资源,它将是幂等操作。 HYPERLINK http:/pluralsight.pxf.io/c/1193463/424552/7490?u=https%3A%2F%2
10、F%2Fcourses%2Fxhttp-fund 甚至多个PUT请求被用来更新服务端资源,将得到相同的结果。你可以通过Pluralsight 学习HTTP Fundamentals 课程来了解HTTP协议和一般的HTTP的更多幂等操作。REST是可扩展的或说是协同的吗?是的, HYPERLINK http:/javarevisited.blogspot.sg/2015/08/difference-between-soap-and-restfull-webservice-java.html h REST 是可扩展的和可协作的。它既不托管一种特定的技术选择,也不定在客户端或者服务端。你可以用 HY
11、PERLINK http:/javarevisited.blogspot.sg/2017/11/top-5-free-java-courses-for-beginners.html Java, HYPERLINK /2018/02/5-free-cpp-courses-to-learn-programming.html C+, HYPERLINK /2018/02/5-free-python-online-courses-for-beginners.html Python, 或 HYPERLINK /2018/04/top-5-free-javascript-courses-to-learn.
12、html JavaScript 来创建RESTful Web服务,也可以在客户端使用它们。我建议你读一本关于REST接口的书来了解更多,如:RESTful Web Services 。RestTemplate的优势是什么?(答案)在Spring framework 中, RestTemplate 类是模板方法模式 的实现。跟其他主流的模板类相似,如 JdbcTemplate 或 JmsTempalte ,它将在客户端简化跟RESTful Web服务的集成。正如在 RestTemplate 例子中显示的一样,你能非常容易地用它来调用RESTful Web服务。REST用哪种HTTP方法呢?RES
13、T能用任何的HTTP方法,但是,最受欢迎的是用GET来检索服务端资源,用POST来创建服务端资 源, HYPERLINK http:/javarevisited.blogspot.sg/2016/04/what-is-purpose-of-http-request-types-in-RESTful-web-service.html l axzz56WGunSwy 用PUT来更新服务端资源 和用DELETE来删除服务端资源。HttpMessageConverter在Spring REST中代表什么? HttpMessageConverter 是一种策略接口 ,它指定了一个转换器,它可以转换HTT
14、P请求和响应 。Spring REST用这个接口转换HTTP响应到多种格式,例如:JSON或XML.每个 HttpMessageConverter 实现都有一种或几种相关联的MIME协议。Spring使用“Accept”的标头来确定客户端所期待的内容类型。然后,它将尝试找到一个注册的HTTPMessageConverter,它能够处理特定的内容类型,并使用它将响 HYPERLINK http:/bit.ly/2ylC68g 应转换成这种格式,然后再将其发送给客户端。如果您是Spring MVC的新手,请参见Spring 5: HYPERLINK http:/bit.ly/2ylC68g Beg
15、inner to Guru 。如何创建HttpMessageConverter的自定义实现来支持一种新的请求/响应?(回答)您仅需要创建AbstractHttpMessageConverter的实现,并使用WebMvcConfigurerAdapter extendmessageconverter()方法注册它,该方法可以生成一种新的请求/响应类型。REST正常是无状态的吗? ( HYPERLINK http:/javarevisited.blogspot.sg/2015/08/difference-between-soap-and-restfull-webservice-java.html
16、答案)是的,REST API应该是无状态的,因为它是基于HTTP的,它也是无状态的。REST API中的请求应该包含处理它所需的所有细节。它不应该依赖于以前或下一个请求或服务器端维护的一些数据, 像会话。REST规范为使其无状态设置了一个约束,在设计REST API时,您应该记住这一点。RequestMapping注解是做什么的? ( HYPERLINK http:/javarevisited.blogspot.sg/2017/06/how-spring-mvc-framework-works-web-flow.html l axzz55vF5ugU8 h 答案)Requestmapping注
17、解是用于将web请求映射到Spring Controller方法。您可以基于HTTP方法映射一个请求,例如GET、POST和各种其他参数。例如,如果您正在使用Spring开发一个基于rest的web服务,那么您可以使用、生产和消费属性以及媒体类型标注,以表明该方法仅用于生产或消费JSON,如下所示:RequestMapping (method = RequestMethod.POST, consumes=application/json) public Book save(RequestBody Book aBook) return bookRepository.save(aBook);类似地
18、,你可以创建其他处理程序方法来产生JSON或XML。如果您不熟悉这些注释,那么我建议您加入 HYPERLINK /fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2F%2Fspring-mvc-tutorial-for-beginners-step-by-step%2F Spring MVC For Beginners 课程,为初学者学习基础知识。Controller是原型吗? RestController 是原型吗? (答案)是的,Controller和
19、Restcontroller都是原型。Controller实际上是Spring的Component原型注解 的特定版。这意味着带有Controller的类也会被Spring容器自动检测到,容器组件扫描过程的一部分。而且,Restcontroller是用于REST式web服务的Controller的专门化。它不仅结合了 HYPERLINK /p/rest-with-spring-the-master-class?affcode=22136_bkwjs9xa h ResponseBody 和Controller注解,而且还赋予了控制器类更大的意义,以清楚地表明它处理的是RESTful 请求。你的S
20、pring框架可能还会使用这个注释来提供一些与REST API开发相关的更有用的特性。Controller and RestController有什么区别? ( HYPERLINK http:/javarevisited.blogspot.sg/2017/08/difference-between-restcontroller-and-controller-annotations-spring-mvc-rest.html h 答案) Controller和RestController注释有许多差异,这个在我以前的文章中讨论过(见答案更多!),但最重要的是,随着RestController 自动
21、注解ResponseBody,这意味着您不需要单独与ResponseBody注解注释处理程序方法。这使得使用Spring的REST式web服务的开发更加容易。您可以在这里看到更多关于 HYPERLINK http:/bit.ly/2yjLysL Spring Boot的知识,以及它如何帮助您创建基于Spring MVC的web应用程序。么时候在Spring MVC中 使用ResponseBody注解? ( HYPERLINK http:/javarevisited.blogspot.sg/2018/01/7-reasons-for-using-spring-to-develop-RESTful
22、-web-service.html l axzz55a8rTeu7 h 答案)你需要什Responsebody注解可以放在一个方法上,以表明返回类型应该直接写入HTTP响应体(不要放在模型中,或者解释为一个视图名)。例如:RequestMapping(path = /hello, method = RequestMethod.PUT) ResponseBodypublic String helloWorld() return Hello World;另外,你也可以使用RestController 注解来取代Controller注释。这将消除使用Responsebody的需要,因为正如前面的答案
23、所讨论的那样,它会自动使用Restcontroller注释 。PathVariable在Spring MVC做了什么? 为什么REST在Spring中如此有用? ( HYPERLINK http:/javarevisited.blogspot.sg/2017/10/differences-between-requestparam-and-pathvariable-annotations-spring-mvc.html h 答案)这是Spring MVC中有用的注解之一,它允许您从URI读取值,比如查询参数。它在使用Spring创建RESTful web服务时特别有用,因为在REST中,资源标识
24、符是URI的一部分。这个问题通常由经验丰富的Spring MVC开发人员提出,他们有4到6年的经验。例如,如果你想要学习如何提取id,那么这个 HYPERLINK /books/101 h URL将会很有帮助,然后您就可以使用Spring MVC的 HYPERLINK /fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2F%2Fspring-mvc-tutorial-for-beginners-step-by-step%2F h Pathvariable注
25、释了。如果你不熟悉Spring MVC注解,那么Spring MVC For Beginners: Build Java Web App in 25 Steps 是一个很好的起点。删除的HTTP状态返回码是什么 ? ( HYPERLINK /2015/09/top-10-restful-web-service-interview-questions-answers.html 答案)在删除成功之后,您的REST API应该返回什么状态代码,并没有严格的规则。它可以返回200或204没有内容。一般来说,如果删除操作成功,响应主体为空,返回204。如果删除请求成功且响应体不是空的,则返回200。CR
26、UD是什么意思 ? (答案)CRUD是创建、读取、更新和删除的一种简短形式。在REST API中,POST用于创建资源,GET用于读取资源,PUT用于更新资源,而DELETE用于从服务器移除资源。这是另一个初学者级别的Spring MVC问题,在1到3年的时间里作为一个有经验的程序员。EnableWebMVC一般用在哪里? (答案)当Java配置被用来配置Spring MVC代替XML时,启用Enablewebmvc注解来启用Spring MVC是必须的。它等同于在XML中配置 。它支持Controller-带注解的类,它使用Requestmapping将传入的请求映射到处理程序方法,而这些方
27、法对于Spring对Java配置的支持并不熟悉。在Udemy上的Spring Master课程是一个很好的起点。在Spring MVC中什么时候用到ResponseStatus注解? ( HYPERLINK http:/javarevisited.blogspot.sg/2018/01/7-reasons-for-using-spring-to-develop-RESTful-web-service.html l axzz55a8rTeu7 答案)作为一个3到5年的有经验的Spring开发人员,这是一个很好的问题。在Spring MVC和REST的错误处理过程中,需要标注Responsesta
28、tus注解。通常,当在服务器端抛出一个错误或异常时,web服务器将返回一个全面的HTTP状态码500内部服务器错误。这可能适用于人类用户,但不适用于REST客户端。如果没有找到资源,您需要向它们发送适当的状态码,如404。这就是您可以使用Responsestatus标注的地方,它允许您在异常情况下发送自定义HTTP状态码和适当的错误消息。为了使用它,您可以创建自定义异常,并使用Responsestatus注解和适当的HTTP状态码和理由对它 们进行注释。当这些异常从控制器的处理程序方法中抛出,而在其他任何地方都没有处理时,那么使用适当的HTTP 状态码的适当的HTTP响应被发送到客户端。例如,
29、如果您正在为一个提供图书信息的图书馆编写一个RESTful web服务,那么您可以使用Responsestatus来创建一个异常,当没有找到一本书而不是内部服务器错误(500)时返回HTTP响应代码404,如下所示:ResponseStatus(value=HttpStatus.NOT_FOUND, reason=No such Book) / 404 public class BookNotFoundException extends RuntimeException / .假如异常从任何方法抛出,那么HTTP 404错误代码“没有这样的书”将返回给客户端。 HYPERLINK /p/res
30、t-with-spring-the-master-class?affcode=22136_bkwjs9xa 如果你不熟悉Spring MVC的基本概念,安全和REST,我建议你在下一份工作面试前去学习一下 REST with Spring和 HYPERLINK /p/learn-spring-security-the-master-class?utm_source=javarevisited&utm_medium=web&utm_campaign=lss&affcode=22136_bkwjs9xa Learn Spring Security HYPERLINK /p/rest-with-spring-the-master-class?affcode=22136_bkwjs9xa 的课程来获得一些经验。这两个课程是专门设计为你提供一些实际经验,来提高你的Spring MVC,REST,和Spring Security的知识和经验。REST安全吗? 你能做什么来保护它? ( HYPERLINK /20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蓄势待发 2026年秋季小学二年级教师个人成长计划
- 培根铸魂 2026年秋季高中教学进度安排
- 2026年秋季开学小学五年级音乐德育处工作计划
- 2026年大同市南郊区中小学编制教师招聘考试参考题库及答案详解
- 2025年湛江市坡头区事业编单位人员招聘考试试题及答案详解
- 2026年衡阳市蒸湘区中小学编制教师招聘考试参考试题及答案详解
- 2026湖北华中农业大学其他专业技术人员招聘(第二轮)7人考试参考题库及答案详解
- 2026年攀枝花市西区中小学编制教师招聘考试参考试题及答案详解
- 2026-2027学年第一学期小学三年级语文教学工作计划
- 2026年湖北省黄石市事业编单位人员招聘笔试备考题库及答案详解
- 1-27届希望杯数学竞赛初一试题及答案
- 外立面墙改造工程施工方案
- 癌症患者生活质量量表EORTC-QLQ-C30
- 2023年山东省艺术本科(美术类)第一次投档分数线
- 2024年广西中考地理+生物试题(含答案解析)
- 渣土消纳协议范本
- 2023-2024年《完整版山东省新建商品房买卖合同样本范本预售 》
- 《工业产品生产单位质量安全总监和工业产品生产单位质量安全员守则》
- 车间人员技能矩阵图
- 植物生产与环境课程标准
- 2023变电二次安装工(中级工)技能理论考试题库(核心600题)
评论
0/150
提交评论