专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

一文掌握SpringMVCREST风格开发

  REST风格简介
  REST(Respresentational State Transfer),表现形式状态转换。REST是一种软件  架构风格  、  设计风格  ,通过url路径的方式和请求方式的配合进行参数传递以及完成不同的CRUD操作,使不同的请求方式和不同的操作进行了一个匹配统一。
  可能这样说,小伙伴们不能理解,简单来说就是与传统请求方式不同的另一种请求方式。
  我们举个简单的例子来说明下。
  传统风格的请求方式:
  http://localhost/getProducts
  http://localhost/getProduct?id=7
  传统风格的请求方式通过路径名来区分我们的操作,例如:getProducts表示的是查询所有商品信息,addProduct表示添加商品信息。而如果需要路径传参则是在路径后面加上  ?参数1=参数值&参数2=参数值
  REST风格的请求方式:
  http://localhost/products
  http://localhost/products/7
  关于REST风格的请求方式,我们先来看看它的请求路径。products可以表示新增商品信息和查询所有商品信息,而products/id可以表示查询该id的商品信息、删除该id的还是商品信息、修改该id的商品信息。
  是不是很疑惑,同样的请求路径怎么能表示出多种操作呢?REST风格的请求方式使用同样的请求路径的时候怎么区分是执行了哪种操作呢?
  其实REST风格并不是通过请求路径来区分操作的,而是通过请求方法的不同来区分不同的操作。  常用的REST风格请求方法
  请求方法
  执行操作
  POST
  用于新建资源
  DELETE
  用于删除资源
  PUT
  用于更新资源
  GET
  用于获取资源
  POST、DELETE、PUT、GET四种请求方法分别对应增、删、改、查四种不同的操作。所以即使请求路径名相同也能知道我们执行的是什么操作。  REST风格开发的优点
  根据上面举的例子,我们可以对比传统风格和REST风格,首先,显而易见的第一个优点就是更加的简便。其次,传统风格根据路径名就能大概知道我们是要进行什么操作,而REST风格是通过路径+请求方法来进行操作的,所以光看路径名我们无法得知进行了什么操作,这就是第二个优点,这样隐藏了资源访问的行为,相对来说比传统的方式更加安全。  REST风格代码实现
  我们前面讲了这么多现在来用代码演示下REST风格,我们这里为了简单的演示,所有的操作并不关联数据库进行。  用于新建资源
  在Products类中创建addProducts方法,用于新建资源请求。  @RequestMapping(value = "/products",method = RequestMethod.POST) @ResponseBody public String addProducts(){     System.out.println("新增商品");     return "addProducts"; }
  在Postman中请求,注意对应的请求方法。
  请求成功,查看打印信息。  新增商品
  这样我们就是用REST风格成功的发送了新增请求。  用于删除资源@RequestMapping(value = "/products/{id}",method = RequestMethod.DELETE) @ResponseBody public String deleteProducts(Integer id){     System.out.println("删除id为"+id+"商品");     return "deleteProducts"; }
  这里注意我们写的是  /{id}  ,这样才能接收到传递过来的参数。
  然后Postman发送DELETE请求。
  这里Postman传参也是直接  /id  即可,不再使用之前问号传参的格式了。请求成功后,我们查看打印信息。删除id为null商品
  这里打印信息就有问题了,我们明明有获取id,为什么打印出来是个  null  呢?这是因为我们没有指定参数从路径中来获取所以参数没有获取到。我们在deleteProducts方法参数列表的参数前面加上@PathVariable  注解即可获取到我们REST风格路径中传递的参数。
  修改后:  @RequestMapping(value = "/products/{id}",method = RequestMethod.DELETE) @ResponseBody public String deleteProducts(@PathVariable Integer id){     System.out.println("删除id为"+id+"商品");     return "deleteProducts"; }
  重新使用Postman发送DELETE请求。我们再来查看打印信息。  删除id为7商品
  这次就能成功的获取到参数了。  用于更新资源@RequestMapping(value = "/products/{id}",method = RequestMethod.PUT) @ResponseBody public String updateProducts(@PathVariable Integer id){     System.out.println("修改id为"+id+"商品信息");     return "updateProducts"; }
  使用Postman发送PUT请求,查看打印信息。  修改id为7商品信息
  修改请求成功。  用于获取资源@RequestMapping(value = "/products",method = RequestMethod.GET) @ResponseBody public String getProducts(){     System.out.println("查询商品列表");     return "getProducts"; }  @RequestMapping(value = "/products/{id}",method = RequestMethod.GET) @ResponseBody public String getProduct(@PathVariable Integer id){     System.out.println("查询id为"+id+"商品");     return "getProduct by id"; }
  这里有两个方法,一个是查询全部的商品列表,一个是根据id来查询商品。也跟上面的基本相同。
  使用Postman发送GET请求。
  查看打印信息。  查询id为7商品 查询商品列表
  查询成功。  REST风格开发代码简化
  通过我们上面的案例,我们实现了使用REST风格来请求并传递获取参数。但是看着上面的代码,每个方法前面都加上了  @RequestMapping  和@ResponseBody  注解,这样重复的地方就很多,所以我们需要整合代码达到简化开发的目的。
  首先,我们的  @ResponseBody  注解每个方法都有,就可以放到类层面上。
  然后,  @RequestMapping  注解每个方法也都有,也可以放到类层面上,但是有的方法带参数,并且请求方法也不同,这个问题我们怎么解决呢?这就要用到我们的一些新注解了。POST、DELETE、PUT、GET四种请求方式对应的注解分别是@PostMapping``@DeleteMapping``@PutMapping``@GetMapping  ,对于带参数的请求,我们可以在对应请求方法的注解中加上参数即可。
  我们现在已经简化了不少地方,那还有没有地方可以简化呢?
  我们类层面上有  @Controller  注解和@ResponseBody  注解,其实有一个注解可以替代这两个注解——@RestController  。这样我们就完成了REST风格开发代码简化。我们来看下简化后的代码。
  总结
  关于REST风格开发,我们这里知识点比较多,学习到的新注解也比较多。不同的地方多看几次,也可以多多交流。希望喜欢的小伙伴们多多支持,你们的支持就是我更新的动力。

唐朝宫廷的膳食机构是什么?食物有何品种?唐朝,是中国封建历史上最辉煌璀璨,统一时间最长,是公认的中国国力最强盛的朝代之一,遥望历史的河流,感受历史的沧桑。历史上,负责宫廷饮食机构的光禄寺是从北齐开始正式设立的,此后一直保武威的历史沿革概述,一篇文章给您讲透讲明白西周时期元年(前400年)武威郡为雍州之地,春秋以前为西羌占据,秦为月氏驻牧地。西汉文帝前元六年(前174年)匈奴占领河西。谷水润凉州西汉元狩二年(前121年)春,霍去病击败匈奴,刘备杀过5位下属,其中2位是诸葛亮逼着他杀的,其他3位呢刘备是一位比较仁义的主公,不会像残暴的董卓那样滥杀无辜,丧尽天良,但是作为一位枭雄和帝王,刘备也因种种原因杀过5位下属,其中2位是诸葛亮逼着他杀的,其余3位下属呢?一刘封刘封罗侯寇男子总是一泻千里,该怎么治?看完这篇文章让你恍然大悟早泻的病机有很多,最根本的还是肾不藏精。我们中医理论讲的肾是一个系统,在五脏中位置最低,所以属于封藏之本,五脏的精华都会藏在肾里。肾这个系统范围很广,如生殖器泌尿器骨骼脊髓大脑耳朵宝宝为什么总流口水?这篇文章告诉你答案小宝宝流口水是一件很正常的事情,但是小宝宝为什么总是会流口水呢?流口水要如何护理呢?这对于爸爸妈妈们而言也是一个急需了解的育儿知识点,今天就一起来看看吧!宝宝为什么总是不停地流口水马谡真的是被诸葛亮斩首的吗?揭秘马谡的死亡之谜按照大众印象,马谡在街亭大败后就被诸葛亮军前正法了,但是根据一些史料记载,马谡之死似乎没这么简单。今天我们就探讨一下马谡死亡之谜。按照诸三国志葛亮传王平传晋书陈寿传和华阳国志的记载荆早报来了!荆州重要通告(两码核酸阴性48小时内)!湖北将新增一条高铁10。5速读荆州荆州发布最新通告!公共场所查验两码及48小时核酸检测证明为落实全市常态化核酸检测要求,有效防范疫情传播风险,结合我市实际,自2022年10月4日下午6时起,在全市公共场所开一篇文章带你掌握主流基础框架Spring这篇文章中我们将会介绍Spring的框架以及本体内容,包括核心容器,注解开发,AOP以及事务等内容那么简单说明一下Spring的必要性Spring技术是JavaEE开发的必备技能,这次的诺贝尔物理学证明爱因斯坦错了吗?一篇文章了解本次诺奖本次诺贝尔物理学获得者2022年10月4日,诺贝尔物理学奖正式公布,这次的诺贝尔物理学家颁布给了量子纠缠的相关领域,这个奖并不是发给了量子纠缠的提出人,因为量子纠缠的提出人是爱因斯赵云死后,诸葛亮只是敷衍哭几句,张苞死后为何会哭到吐血晕倒赵云病逝后,诸葛亮只是难过地哭了几句,但当听到张苞去世后,诸葛亮却难过地哭到吐血晕倒。这是为何?难道和他一起共患难20多年的赵云,在诸葛亮的心中,比不上一个年轻将领张苞吗?这里面大诸葛亮出山时,水镜先生只说了八个字,便揭示了他的最终结局出师一表真名世,千载谁堪伯仲间。诸葛亮辅佐刘备,无数次神机妙算化险为夷,建立蜀汉政权,终成三国鼎立的局面。可惜人算不如天算,一场大雨浇灭了所有希望,光复汉室终究是一场美梦,天才也免
何超莲窦骁太会秀恩爱了,穿着休闲低调走机场,难挡时髦范儿何超莲和窦骁两个人还是蛮恩爱的,经常会在荧幕面前秀恩爱,就像这次两个人在机场上也特别亲密。何超莲的穿搭休闲简约,用一身蓝色的卫衣展现出了时尚感,窦骁选择了棕色的外套,搭配上白色的T毛主席从山西到阜平,全网首现老照片城南庄,提出怎样的号令头条创作挑战赛1948年4月12日,毛泽东一行越过长城岭,离开山西到达河北阜平的西下关。毛泽东转战陕北路线图长城岭,位于河北省阜平县境内太行山东麓晋冀交界处的古迹长城岭处,海拔高度退!减!免!缓!延!今年这些钱你省了吗?2022年政府工作报告提出,持续激发市场主体活力,实施新的组合式税费支持政策,减税与退税并举。为帮助市场主体增动力添活力减压力,今年出台了哪些减税退税政策,都给市场主体和纳税人带来软萌可爱高颜值网红美女小姐姐第13期这位超级可爱的小姐姐,五官漂亮皮肤白皙,画着精致的淡妆,有一头丝滑的中长发,中间往下染成了淡淡的黄色,一身网红JK穿着,时尚潮流的格子裙,修身衬托出一丝婉约的气息,简约又不失去魅力德甲拜仁慕尼黑VS弗赖堡,拜仁虎落平阳,弗赖堡遭遇劲敌北京时间10月17日凌晨1点30分,德甲联赛第10轮比赛,即将迎来拜仁主场迎战弗赖堡的比赛,从目前德甲联赛的排行榜来看,德甲联赛似乎正在经历一轮洗牌,德甲榜首已经换成了柏林联合,第三年前贷款买房的,现在降价怎么办?当前,房地产市场下滑幅度巨大,主要集中在三四线城市。许多城市由于对地财政的依赖性依然较大,人们的购房欲望减弱无疑对当地发展造成巨大的冲击。因此多地均已实行各种利好政策,来进一步促进无人配送车,希望与失望并存国庆假期刚过,国际巨头亚马逊就给无人配送车浇了一盆冷水。据悉,亚马逊目前已经停止开发无人配送车Scout,400人团队面临转岗和解散。该项目于2019年起正式开始实地测试,在美国各愚者强调黑暗,智者关注光明一个人重视什么,就会变成什么样的人。智者重阳轻阴,愚者重阴轻阳。阳贵阴贱,吉无不利。阴贵阳贱,凶险不断。比如,有两个人看到同一件事情,重阴的会先找事情的错误,往坏的方面想,然后内心全球经济大衰退,老百姓该怎样应对呢?10月财经新势力全球经济正面临大的衰退,这也是第二次世界大战后,最严重的经济衰退。当前疫情和地缘政治等多种因素,都直接或间接地影响着全球产业链和供应链,比起2019年前,全球经济运盘点华为历代最成功与最失败的旗舰机,你知道几个?华为作为一家以通讯起家的手机厂商,在研发资金上面有着其他国产友商没有的优势。下面就来盘点一下华为的历代旗舰机,最成功与最失败的产品。最成功的机型一华为mate7mate8mate7月球每年飞离地球4厘米!彻底脱离的那一天,就是地球流浪之时作为地球唯一的卫星月球,已经围绕着地球旋转了无数的岁月,但是这样的局面有可能会被打破。月亮不是发光体研究发现,月球每年飞离地球4厘米!当月球彻底脱离地球之后,就是地球流浪之时。月球
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软件