城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

Spring认证中国教育管理中心SpringDataREST

12月4日 桃花醉投稿
  原标题:Spring认证中国教育管理中心SpringDataREST框架教程五(Spring中国教育管理中心)8。3。构建更高效的前端
  ETag元素,结合IfMatch和IfNoneMatch标题,让您构建一个对消费者的数据计划和移动电池寿命更友好的前端。这样做:确定需要锁定的实体并添加版本属性。HTML5很好地支持data属性,因此将版本存储在DOM中(例如dataetag属性)。确定可从跟踪最新更新中受益的条目。获取这些资源时,将LastModified值存储在DOM中(datalastmodified可能)。获取资源时,还要self在DOM节点中嵌入URI(可能datauri或dataself),以便轻松返回资源。调整PUTPATCHDELETE操作中使用IfMatch,也处理HTTP412PreconditionFailed状态代码。调整GET操作以使用IfNoneMatch和IfModifiedSince处理HTTP304NotModified状态代码。
  通过在您的DOM中嵌入ETag元素和LastModified值(或者对于本机移动应用程序可能在其他地方),您可以通过不一遍又一遍地检索相同的内容来减少数据和电池电量的消耗。您还可以避免与其他客户端发生冲突,而是在需要协调差异时收到警报。
  以这种方式,只需对前端进行一些调整和一些实体级别的编辑,后端就会提供对时间敏感的详细信息,您可以在构建客户友好型客户端时从中获利。9。验证
  Validator在SpringDataREST中注册实例有两种方法:通过bean名称连接它或手动注册验证器。对于大多数情况,简单的bean名称前缀样式就足够了。
  为了告诉SpringDataREST您希望将Validator特定事件分配给特定事件,请在bean名称前加上相关事件。例如,要Person在将新实例保存到存储库之前验证类的实例,您可以Validator在您ApplicationContext的bean名称中声明一个a的实例beforeCreatePersonValidator。由于beforeCreate前缀与已知的SpringDataREST事件匹配,因此该验证器连接到正确的事件。9。1。手动分配验证器
  如果您不想使用bean名称前缀方法,则需要向bean注册一个验证器实例,该bean的工作是在正确的事件之后调用验证器。在您的配置实现RepositoryRestConfigurer,覆盖configureValidatingRepositoryEventListener方法并调用addValidator上ValidatingRepositoryEventListener,传递要触发这个验证程序和验证的一个实例。以下示例显示了如何执行此操作:OverridevoidconfigureValidatingRepositoryEventListener(ValidatingRepositoryEventListenerv){v。addValidator(beforeSave,newBeforeSaveValidator());}10。活动
  REST导出器在使用实体的整个过程中发出八种不同的事件:BeforeCreateEventAfterCreateEventBeforeSaveEventAfterSaveEventBeforeLinkSaveEventAfterLinkSaveEventBeforeDeleteEventAfterDeleteEvent10。1。写一个ApplicationListener
  您可以创建一个抽象类的子类,该类侦听这些类型的事件并根据事件类型调用适当的方法。为此,请覆盖相关事件的方法,如下所示:publicclassBeforeSaveEventListenerextendsAbstractRepositoryEventListener{OverridepublicvoidonBeforeSave(Objectentity){。。。logictohandleinspectingtheentitybeforetheRepositorysavesit}OverridepublicvoidonAfterDelete(Objectentity){。。。sendamessagethatthisentityhasbeendeleted}}
  但是,这种方法需要注意的一点是,它不会根据实体的类型进行区分。你必须自己检查。10。2。编写带注释的处理程序
  另一种方法是使用带注释的处理程序,它根据域类型过滤事件。
  要声明处理程序,请创建一个POJO并RepositoryEventHandler在其上放置注释。这告诉BeanPostProcessor该类需要检查处理程序方法。
  一旦BeanPostProcessor找到带有此注释的bean,它就会遍历公开的方法并查找与相关事件对应的注释。例如,要处理BeforeSaveEvent不同类型域类型的带注释的POJO中的实例,您可以按如下方式定义您的类:RepositoryEventHandlerpublicclassPersonEventHandler{HandleBeforeSavepublicvoidhandlePersonSave(Personp){youcannowdealwithPersoninatypesafeway}HandleBeforeSavepublicvoidhandleProfileSave(Profilep){youcannowdealwithProfileinatypesafeway}}
  可以通过使用(例如)来缩小此处理程序适用的类型RepositoryEventHandler(Person。class)。
  您感兴趣的事件的域类型由注释方法的第一个参数的类型确定。
  要注册您的事件处理程序,请使用Spring的Component构造型之一标记该类(以便它可以被SpringBootApplication或选取ComponentScan)或在您的ApplicationContext。然后在BeanPostProcessor中创建的RepositoryRestMvcConfiguration检查bean的处理程序并将它们连接到正确的事件。以下示例显示了如何为类创建事件处理程序Person:ConfigurationpublicclassRepositoryConfiguration{BeanPersonEventHandlerpersonEventHandler(){returnnewPersonEventHandler();}}
  SpringDataREST事件是定制的Spring应用程序事件。默认情况下,Spring事件是同步的,除非它们跨边界重新发布(例如发出WebSocket事件或跨入线程)。11。整合
  本节详细介绍了与SpringDataREST组件集成的各种方法,无论是从使用SpringDataREST的Spring应用程序还是通过其他方式。11。1。程序链接
  有时您需要在自己定制的SpringMVC控制器中添加指向导出资源的链接。共有三个基本级别的链接可用:手动组装链接。将SpringHATEOASLinkBuilder与linkTo()、slash()等一起使用。使用SpringDataREST的RepositoryEntityLinks。
  第一个建议很糟糕,应该不惜一切代价避免。它使您的代码脆弱且风险高。第二个在创建到其他手写SpringMVC控制器的链接时很方便。最后一个,我们将在本节的其余部分探讨,适用于查找SpringDataREST导出的资源链接。
  考虑以下使用Spring自动装配的类:publicclassMyWebApp{privateRepositoryEntityLinksentityLAutowiredpublicMyWebApp(RepositoryEntityLinksentityLinks){this。entityLinksentityL}}
  对于前面示例中的类,您可以使用以下操作:
  所有基于搜索的链接都支持用于分页和排序的额外参数。详情请参阅RepositoryEntityLinks。还有linkFor(C?type),但它会返回一个SpringHATEOASLinkBuilder,它会将您返回到较低级别的API。先尝试使用其他的。12。元数据
  本节详细介绍SpringData基于REST的应用程序提供的各种形式的元数据。12。1。应用程序级配置文件语义(ALPS)
  ALPS是一种数据格式,用于定义应用程序级语义的简单描述,其复杂性类似于HTML微格式。一个ALPS文档可以作为一个配置文件来解释具有与应用程序无关的媒体类型(例如HTML、HAL、CollectionJSON、Siren等)的文档的应用程序语义。这增加了跨媒体类型的配置文件的可重用性。
  M。AdmundsenL。RichardsonM。Fosterhttps:tools。ietf。orghtmldraftamundsenrichardsonfosteralps00
  SpringDataREST为每个导出的存储库提供一个ALPS文档。它包含有关RESTful转换和每个存储库的属性的信息。
  SpringDataREST应用程序的根是一个配置文件链接。假设您有一个同时包含persons和related的应用程序addresses,根文档将如下所示:{links:{persons:{href:http:localhost:8080persons},addresses:{href:http:localhost:8080addresses},profile:{href:http:localhost:8080profile}}}
  RFC6906中定义的配置文件链接是包含应用程序级详细信息的地方。该ALPS规范草案旨在定义特定配置文件格式,这是我们在本节后面探索。
  如果您导航到的个人资料链接localhost:8080profile,您会看到类似于以下内容的内容:{links:{self:{href:http:localhost:8080profile},persons:{href:http:localhost:8080profilepersons},addresses:{href:http:localhost:8080profileaddresses}}}
  在根级别,profile是一个链接,不能提供多个应用程序配置文件。这就是为什么您必须导航以profile找到每个资源元数据的链接。
  如果您导航profilepersons并查看Person资源的配置文件数据,您会看到类似于以下示例的内容:{version:1。0,descriptors:〔{id:personrepresentation,descriptors:〔{name:firstName,type:SEMANTIC},{name:lastName,type:SEMANTIC},{name:id,type:SEMANTIC},{name:address,type:SAFE,rt:http:localhost:8080profileaddressesaddress}〕},{id:createpersons,name:persons,type:UNSAFE,rt:personrepresentation},{id:getpersons,name:persons,type:SAFE,rt:personrepresentation},{id:deleteperson,name:person,type:IDEMPOTENT,rt:personrepresentation},{id:patchperson,name:person,type:UNSAFE,rt:personrepresentation},{id:updateperson,name:person,type:IDEMPOTENT,rt:personrepresentation},{id:getperson,name:person,type:SAFE,rt:personrepresentation}〕}
  此JSON文档的媒体类型为applicationalpsjson。这与之前的JSON文档不同,后者的媒体类型为applicationhaljson。这些格式是不同的,并由不同的规范管理。
  您还可以profile在links检查集合资源时在集合中找到链接,如下例所示:{links:{self:{href:http:localhost:8080persons},。。。otherlinks。。。profile:{href:http:localhost:8080profilepersons}},。。。}
  此HAL文档代表了Person集合。
  它有一个指向元数据相同URI的配置文件链接。
  同样,默认情况下,该profile链接提供ALPS。但是,如果您使用Acceptheader,它可以提供applicationalpsjson。
投诉 评论 转载

医生请停止饮用1种桶装水,或会加速肝癌来临,尽早戒掉肝脏作为身体中必不可缺的重要器官,具有排毒代谢的功能,有着人体清洁工的称号,肝脏除了代谢排毒之外,还能储存血液调节血液,分泌胆汁和蛋白质,储存肝糖,维持身体所需。夏方养生指南……10000人规模的桐庐半程马拉松,官宣延期!重启时间待定钱江晚报小时新闻记者李颖王琼鉴于疫情防控形势依然严峻和不确定性,10000人规模的2022桐庐半程马拉松组委会官宣延期,具体时间另行通知。已成功报名的选手,参赛名额将予以……预防心血管问题的最佳食物有哪些?吃我们今天可用的新鲜水果和蔬菜对健康有很多好处。越来越多的杂货店提供有机产品,因此更容易获得和保持健康。为了避免心脏病发作、中风或其他心血管问题,有两个主要方面需要您注意……工业互联网赋能绿色低碳发展优秀案例集中融汇智化工行业采输系统前言为践行2030年前实现碳达峰、2060年前实现碳中和的重大战略决策,贯彻落实《十四五工业绿色发展规划》,加快推进工业节能降碳,构建工业绿色低碳转型与工业互联网赋能绿色……华为nova10Pro即将发布,首搭HarmonyOS3,价最近各大品牌都发布了自己的新机,有的发布会都开了好几次了,现在还没有动静的就是华为和魅族了,两个都是大招CD还没好的选手,不过华为这边已经有消息传出了,去年年底华为召开了开发者……无戏可拍,11年演员逃离北京转行学兽医燃次元(ID:chaintruth)原创燃财经出品作者丨孔月昕编辑丨谢中秀行业寒冬下,影视行业的现状如履薄冰,生活在底层的部分演员更是举步维艰。今……打卡川西蓝色海洋,邂逅木格措的雪山与杜鹃五月高山杜鹃花季,观赏正当时都说人间四月芳菲尽,雪域杜鹃始盛开!五月,正是高山杜鹃花开的时节木格措的杜鹃峡更是一片热闹找个机会一起去木格措赏花避暑……Spring认证中国教育管理中心SpringDataREST原标题:Spring认证中国教育管理中心SpringDataREST框架教程五(Spring中国教育管理中心)8。3。构建更高效的前端ETag元素,结合IfMatch和I……中国男人穿衣品味差?10条普通男士穿搭建议,提升魅力值各种审美观念的舆论造势在生活中已经屡见不鲜了,当女性群体仍在容貌焦虑的旋涡中挣扎和徘徊时,还在认为社会审美对男性宽容以待时,殊不知男性的审美其实也一直在被社会舆论所调侃。……活动预告丨世园无处不飞花,一本护照走天下4月13日北京世园公园首届郁金香生态文化节开幕,近1。5万平方米、30余万株郁金香在世园公园次第绽放。公园将在周末陆续推出特色文化活动,期待您的参与。世园无处不飞花一本护……有白头发,日常护理注意这几点人随着年纪的增长,白头发的数量逐渐增加,这也是岁月留下的痕迹,但随着社会压力的逐渐增大、不良生活习惯的影响,很多人年纪轻轻就产生了白头发,想要挽救白头发,日常护理可以这样做:……孩子学画画应该从多大年龄开始比较合适?不知道你是否发现,几乎所有的孩子,在他们还不会说话之前,就已经在画画。不仅仅在纸上画画,他们还热衷于在幼小的的身体能接触到的任何材料上绘画:墙壁、桌面、衣服、身体,等等。……
uniapp使用swiper实现组织机构选择传统武侠江湖手游千年,修炼武功,锻造神兵,在乱世中仗剑天涯华熙生物以华熙厚源锁定细胞培养基赛道,推动再生医学高质量发展人跟猩猩是亲戚吗?探索人猿伪进化论闪电日志洗澡是个技术活TA们每天将上万份快件送往静安区的核心商务区丨新春走基层关于红米note12tpro,我替冰哥问问各位机油辽宁男篮完败广东男篮的原因找到了科学家发现42光年外的超级星球,和地球类似,或已存在生命中望发布青少年科创教育报告自主学习成新趋势女武神打得过50只野狗吗?艾尔登法环玩家做了一个有趣的实验魔力宝贝3。1号辰龙区开放,这些攻略你知道多少?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁