游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

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

  13。1。基本
  SpringData提供了复杂的支持,以透明地跟踪谁创建或更改了实体以及更改发生的时间。要从该功能中受益,您必须为实体类配备审计元数据,这些元数据可以使用注释或通过实现接口来定义。此外,必须通过Annotation配置或XML配置启用审计以注册所需的基础架构组件。有关配置示例,请参阅特定于商店的部分。
  仅跟踪创建和修改日期的应用程序不需要指定AuditorAware。13。1。1。基于注解的审计元数据
  我们提供CreatedBy并LastModifiedBy捕获创建或修改实体的用户,CreatedDate并LastModifiedDate捕获更改发生的时间。
  示例94。一个被审计的实体classCustomer{CreatedByprivateUseruser;CreatedDateprivateInstantcreatedDate;furtherpropertiesomitted}
  如您所见,可以有选择地应用注释,具体取决于您要捕获的信息。进行更改时捕获的注释可用于JodaTimeDateTime、旧版JavaDate和Calendar、JDK8日期和时间类型以及long或类型的属性Long。
  审计元数据不一定需要存在于根级实体中,但可以添加到嵌入式实体中(取决于实际使用的存储),如下面的截图所示。
  示例95。审计嵌入实体中的元数据classCustomer{privateAuditMetadataauditingMetadata;furtherpropertiesomitted}classAuditMetadata{CreatedByprivateUseruser;CreatedDateprivateInstantcreatedDate;}13。1。2。基于接口的审计元数据
  如果您不想使用注释来定义审计元数据,您可以让您的域类实现该Auditable接口。它公开了所有审计属性的setter方法。13。1。3。AuditorAware
  如果您使用CreatedBy或LastModifiedBy,审计基础结构需要以某种方式了解当前主体。为此,我们提供了一个AuditorAwareSPI接口,您必须实现该接口以告知基础设施当前与应用程序交互的用户或系统是谁。泛型类型T定义了用什么类型注释的属性CreatedBy或LastModifiedBy必须是什么类型。
  以下示例显示了使用SpringSecurityAuthentication对象的接口的实现:
  Example96。AuditorAware基于SpringSecurity的实现classSpringSecurityAuditorAwareimplementsAuditorAwareUser{OverridepublicOptionalUsergetCurrentAuditor(){returnOptional。ofNullable(SecurityContextHolder。getContext())。map(SecurityContext::getAuthentication)。filter(Authentication::isAuthenticated)。map(Authentication::getPrincipal)。map(User。class::cast);}}
  该实现访问AuthenticationSpringSecurity提供的对象并查找UserDetails您在UserDetailsService实现中创建的自定义实例。我们在这里假设您通过UserDetails实现公开域用户,但根据Authentication发现,您也可以从任何地方查找它。13。1。4。ReactiveAuditorAware
  使用反应式基础架构时,您可能希望使用上下文信息来提供CreatedBy或提供LastModifiedBy信息。我们提供了一个ReactiveAuditorAwareSPI接口,您必须实现该接口才能告诉基础设施当前与应用程序交互的用户或系统是谁。泛型类型T定义了用什么类型注释的属性CreatedBy或LastModifiedBy必须是什么类型。
  以下示例显示了使用响应式SpringSecurityAuthentication对象的接口的实现:
  例97。ReactiveAuditorAware基于SpringSecurity的实现classSpringSecurityAuditorAwareimplementsReactiveAuditorAwareUser{OverridepublicMonoUsergetCurrentAuditor(){returnReactiveSecurityContextHolder。getContext()。map(SecurityContext::getAuthentication)。filter(Authentication::isAuthenticated)。map(Authentication::getPrincipal)。map(User。class::cast);}}
  该实现访问AuthenticationSpringSecurity提供的对象并查找UserDetails您在UserDetailsService实现中创建的自定义实例。我们在这里假设您通过UserDetails实现公开域用户,但根据Authentication发现,您也可以从任何地方查找它。13。2。Cassandra的一般审计配置
  要激活审计功能,请将SpringDataforApacheCassandraauditing命名空间元素添加到您的配置中,如以下示例所示:
  示例98。使用XML配置激活审计cassandra:auditingmappingcontextrefcustomMappingContextauditorawarerefyourAuditorAwareImpl
  或者,可以通过使用注释对配置类进行EnableCassandraAuditing注释来启用审计,如以下示例所示:
  示例99。使用JavaConfig激活审计ConfigurationEnableCassandraAuditingclassConfig{BeanpublicAuditorAwaremyAuditorProvider(){returnnewAuditorAwareImpl();}}
  如果你暴露类型的豆AuditorAware到ApplicationContext,审计基础设施自动捡起来,并用它来确定当前用户要在域类型设置。如果您在中注册了多个实现,则ApplicationContext可以通过显式设置的auditorAwareRef属性来选择要使用的一个EnableCassandraAuditing。
  要启用审计,利用反应式编程模型,请使用EnableReactiveCassandraAuditing注释。
  如果你暴露类型的豆ReactiveAuditorAware到ApplicationContext,审计基础设施自动捡起来,并用它来确定当前用户要在域类型设置。如果您在中注册了多个实现,则ApplicationContext可以通过显式设置的auditorAwareRef属性来选择要使用的一个EnableReactiveCassandraAuditing。
  示例100。使用JavaConfig激活反应式审计ConfigurationEnableReactiveCassandraAuditingclassConfig{BeanpublicReactiveAuditorAwaremyAuditorProvider(){returnnewAuditorAwareImpl();}}14。映射
  丰富的对象映射支持由MappingCassandraConverter。MappingCassandraConverter拥有丰富的元数据模型,提供完整的功能特性集以将域对象映射到CQL表。
  映射元数据模型是通过使用域对象上的注释来填充的。然而,基础设施不限于使用注释作为元数据的唯一来源。该MappingCassandraConverter还允许你映射域对象到表,而不用提供任何额外的元数据,通过以下一组约定。
  在本章中,我们描述了的特性MappingCassandraConverter,如何使用约定将域对象映射到表,以及如何使用基于注释的映射元数据覆盖这些约定。14。1。对象映射基础
  本节涵盖SpringData对象映射、对象创建、字段和属性访问、可变性和不变性的基础知识。请注意,本节仅适用于不使用底层数据存储(如JPA)的对象映射的SpringData模块。此外,请务必查阅特定于存储的部分以获取特定于存储的对象映射,例如索引、自定义列或字段名称等。
  SpringData对象映射的核心职责是创建域对象的实例并将存储本机数据结构映射到这些实例上。这意味着我们需要两个基本步骤:使用公开的构造函数之一创建实例。实例填充以实现所有公开的属性。14。1。1。对象创建
  SpringData会自动尝试检测要用于具体化该类型对象的持久实体的构造函数。解析算法的工作原理如下:如果只有一个构造函数,则使用它。如果有多个构造函数并且只有一个用注释PersistenceConstructor,则使用它。如果存在无参数构造函数,则使用它。其他构造函数将被忽略。
  值解析假定构造函数参数名称与实体的属性名称匹配,即解析将被执行,就像要填充属性一样,包括映射中的所有自定义(不同的数据存储列或字段名称等)。这还需要类文件中可用的参数名称信息或ConstructorProperties构造函数中存在的注释。
  可以通过使用Value特定于商店的SpEL表达式使用SpringFramework的值注释来自定义值解析。有关更多详细信息,请参阅有关商店特定映射的部分。
  对象创建内部
  为了避免反射的开销,SpringData对象创建默认使用运行时生成的工厂类,它会直接调用域类构造函数。即对于此示例类型:classPerson{Person(Stringfirstname,Stringlastname){}}
  我们将在运行时创建一个语义上等同于这个的工厂类:classPersonObjectInstantiatorimplementsObjectInstantiator{ObjectnewInstance(Object。。。args){returnnewPerson((String)args〔0〕,(String)args〔1〕);}}
  这使我们比反射提高了大约10的性能。要使域类有资格进行此类优化,它需要遵守一组约束:它不能是私人课程它不能是非静态内部类它不能是CGLib代理类SpringData使用的构造函数不能是私有的
  如果这些条件中的任何一个匹配,SpringData将通过反射回退到实体实例化。
  14。1。2。物业人口
  一旦创建了实体的实例,SpringData就会填充该类的所有剩余持久属性。除非实体的构造函数已经填充(即通过其构造函数参数列表消耗),标识符属性将首先填充以允许循环对象引用的解析。之后,所有尚未由构造函数填充的非瞬态属性都在实体实例上设置。为此,我们使用以下算法:如果属性是不可变的但公开了一个with方法(见下文),我们使用该with方法创建一个具有新属性值的新实体实例。如果定义了属性访问(即通过getter和setter访问),我们将调用setter方法。如果属性是可变的,我们直接设置字段。如果属性是不可变的,我们将使用持久性操作(请参阅对象创建)使用的构造函数来创建实例的副本。默认情况下,我们直接设置字段值。
  财产人口内部结构
  与我们在对象构造中的优化类似,我们也使用SpringData运行时生成的访问器类与实体实例进行交互。classPerson{privatefinalLongid;privateStringfirstname;privateAccessType(Type。PROPERTY)Stringlastname;Person(){this。idnull;}Person(Longid,Stringfirstname,Stringlastname){Fieldassignments}PersonwithId(Longid){returnnewPerson(id,this。firstname,this。lastame);}voidsetLastname(Stringlastname){this。lastnamelastname;}}
  示例101。生成的属性访问器classPersonPropertyAccessorimplementsPersistentPropertyAccessor{privatestaticfinalMethodHandlefirstname;privatePersonperson;publicvoidsetProperty(PersistentPropertyproperty,Objectvalue){Stringnameproperty。getName();if(firstname。equals(name)){firstname。invoke(person,(String)value);}elseif(id。equals(name)){this。personperson。withId((Long)value);}elseif(lastname。equals(name)){this。person。setLastname((String)value);}}}
  PropertyAccessor持有底层对象的可变实例。这是为了启用其他不可变属性的突变。
  默认情况下,SpringData使用字段访问来读取和写入属性值。根据private字段的可见性规则,MethodHandles用于与字段进行交互。
  该类公开了一个withId()用于设置标识符的方法,例如,当一个实例插入到数据存储中并生成一个标识符时。调用withId()创建一个新Person对象。所有后续的突变都将在新实例中发生,而前一个则保持不变。
  使用属性访问允许直接方法调用而不使用MethodHandles。
  这使我们比反射提高了大约25的性能。要使域类有资格进行此类优化,它需要遵守一组约束:
  类型不得位于默认值或java包下。
  类型及其构造函数必须是public
  属于内部类的类型必须是static。
  使用的Java运行时必须允许在原始ClassLoader。Java9和更新版本施加了某些限制。
  默认情况下,SpringData尝试使用生成的属性访问器,如果检测到限制,则回退到基于反射的访问器。
  让我们看一下以下实体:
  示例102。示例实体classPerson{privatefinalIdLongid;privatefinalStringfirstname,lastname;privatefinalLocalDatebirthday;privatefinalintage;privateStringcomment;privateAccessType(Type。PROPERTY)Stringremarks;staticPersonof(Stringfirstname,Stringlastname,LocalDatebirthday){returnnewPerson(null,firstname,lastname,birthday,Period。between(birthday,LocalDate。now())。getYears());}Person(Longid,Stringfirstname,Stringlastname,LocalDatebirthday,intage){this。idid;this。firstnamefirstname;this。lastnamelastname;this。birthdaybirthday;this。ageage;}PersonwithId(Longid){returnnewPerson(id,this。firstname,this。lastname,this。birthday,this。age);}voidsetRemarks(Stringremarks){this。remarksremarks;}}
  identifier属性是最终的,但null在构造函数中设置为。该类公开了一个withId()用于设置标识符的方法,例如,当一个实例插入到数据存储中并生成一个标识符时。Person创建新实例时,原始实例保持不变。相同的模式通常应用于由存储管理但可能必须为持久性操作更改的其他属性。wither方法是可选的,因为持久性构造函数(参见6)实际上是一个复制构造函数,并且设置该属性将被转换为创建一个应用新标识符值的新实例。
  的firstname和lastname特性是通过吸气剂可能暴露普通不可变属性。
  该age属性是不可变的,但源自该birthday属性。使用所示设计,数据库值将胜过默认值,因为SpringData使用唯一声明的构造函数。即使意图是计算应该是首选,重要的是此构造函数也将age作为参数(可能会忽略它),否则属性填充步骤将尝试设置年龄字段并由于它不可变且没有with方法而失败在场。
  该comment属性是可变的,通过直接设置其字段来填充。
  的remarks特性是可变的,并且通过设置填充comment直接字段或通过调用用于setter方法
  该类公开了一个工厂方法和一个用于创建对象的构造函数。这里的核心思想是使用工厂方法而不是额外的构造函数,以避免需要通过PersistenceConstructor。相反,属性的默认设置是在工厂方法中处理的。
  内容来源:Spring中国教育管理中心(Spring认证)
  2021年2月,VMware公司正式与北京中科卓望网络科技有限公司(以下简称:中科卓望)达成战略合作,授予其Spring中国教育管理中心,携手VMware全球最新Spring技术和认证体系,帮助中国院校构建专业教学内容,全面赋能未来开发人

国服亚瑟被神鸡营开除,却在SOLO中吊打赖神老夫子,德华肠子吕德华可以说是一个直播鬼才,一般的主播技术越强人气越高,但德华是反着来的,每次他连跪或者给观众喂饭的时候,热度直接到达巅峰。而德华创造的神鸡营热度同样很高,这个战队里面大神玩家……秋冬季如何给皮肤补水保湿?这些是让你无效补水的原因吗?关注【彬彬OK仔】带你了解更多护肤知识!如何给皮肤补水,可能大家都知道,但是你不知道的是,你可能正在无效补水,而保湿工作不到位,导致脸上用再贵的护肤品都拯救不了脸上的干燥……咳嗽吃什么好得快?咳嗽吃什么水果好?每到换季的时候就是咳嗽的高发季节,咳嗽真是一个难受的事情,咳嗽的时候感觉嗓子都要废了,很多人咳嗽会选择多喝水,其实喝水有一定的效果,但是光喝水也是不行的,那么咳嗽应该吃什么呢,……白醋泡脚可以治疗脚气吗?白醋泡脚的功效与作用白醋泡脚非常好的养生方法,很多民间传说说白醋治脚气很有用,那到底是否真的如此呢?除了治疗脚气,还有什么别的功效与作用吗?下面我们来就来详细介绍下!白醋泡脚可以治疗脚气吗……鹿胎膏能补充雌激素吗?雌激素最佳补充方法雌激素是女性必不可少的物质,很多女性缺乏雌激素,下面5号网的小编为你们介绍鹿胎膏能补充雌激素吗?雌激素最佳补充方法。鹿胎膏能补充雌激素吗雌激素低的话可以用鹿胎膏的,是有补……游戏的历史游戏行业自改革开放以来开始兴起,我们看到了例如街机,家庭机,单机等不同的游戏形态。街机的出现第一次带来了物理性的游戏并且具有核心的竞争力。人们追求高分并且在社区中可以展示……不少烧烤店不卖拍黄瓜和花生毛豆这种下酒菜了,你知道为什么吗?周末跟老公去聚餐,他们这一群酒人,每到周末都会聚一下的,有带家属的呢,就一起都带家属。这次去的是浑南区时光里酒吧一条街,这个地方以前是半废弃状态,都是洗车店之类的。现在改成了酒……看传奇风云人物精彩一刻嗨!各位看官朋友们大家好!我是体验官Aq!传奇那么多年有很多大神都让玩家们记忆犹新,传奇自2001年上线公测以来,出现了很多有名的玩家。上面讲到的传奇第一氪金玩家8L,他……浅田饴的服用方法浅田饴咽喉糖功效禁忌给大家安利一款润喉糖吧!就像是小糖果一样好好吃,吃过之后感觉喉咙也会舒服了好多,日本家庭的常备药品,孩子大人都爱吃。下面我们来看看浅田饴怎么吃?有什么作用吧!浅田饴咽喉糖价格……医食同源酵素怎么吃?教你正确吃法医食同源酵素是一款能够治失眠还能瘦身的药品,可以说是女性必备了,下面5号网的小编为你们介绍医食同源酵素怎么吃?教你正确吃法。医食同源酵素怎么吃最开始吃的他家的夜间酵素,后……谁是玻璃属性!三个赛季常规出场浓眉138乔治133莱昂纳德1关注湖人的球迷都知道,自从戴维斯加盟的第一个赛季,湖人队就在戴维斯与詹姆斯的带领下拿到冠军,没有想到争冠后戴维就一直遭遇伤病,1920赛季加盟湖人至今三个赛季,除了第一个赛季出……漂流可以穿拖鞋吗?漂流穿什么拖鞋子好漂流是夏季最酷的运动了,去过漂流的朋友们一定想去第二次吧,那么小编可能要问了,漂流肯定会湿鞋子的,那么漂亮可以穿拖鞋吗?漂流可以穿拖鞋吗夏天准备一家人去漂流,以前没……
麒麟9000库存告急,华为P50Pro被迫换芯,骁龙888卖文有鱼审核张子扬校正知秋在众多国产手机厂商中,华为是唯一可以与三星、苹果掰手腕的厂商,一度被消费者视作国产手机的骄傲。但在2021年受外部因素影响,华为跌下了神坛,……烧了50年的鬼镇被永远关闭,曾经却是一片繁荣!发生了什么?一个世纪以前,在美国宾夕法尼亚州有一个名叫森特勒利亚的小镇,因为丰富的矿产资源,让这里十分富裕。根据记录,在1890年,森特利亚镇的鼎盛时期,其人口最多达到2,761人,拥有7……美国报废卫星今日或坠落朝鲜半岛据韩国《中央日报》报道,韩国科学技术信息通信部1月8日表示,美国航天局一颗报废卫星正在坠入地球大气层,残骸可能于今天(9日)坠落在朝鲜半岛。该部门已发出警戒警报,并提醒民众注意……人这一生,请和这几种人在一起相处,生活会越来越美好前言:我们人到了中年以后,就意味着需要承担更多的责任和生活琐碎的问题,然而有一个良好的人际交往关系结实经营好生活的重点。我们人到了一定的年纪会发现我们变得越来……威少我是三巨头中不得不做出最大牺牲的那个人直播吧1月15日讯近日,湖人球星威少接受了TA记者SamAmick的专访。在采访中,威少表示:我们(所有人)都想搞明白作为一支球队,作为一个整体,我们如何才能变得更好。……拆解耐克NikeVomero15了解ZoomAir气垫和Zo2020年底推出的NikeVemoro15用到了ZoomX泡棉和ZoomAir气垫,这两个都是耐克出色的缓震技术,国外专业跑鞋网站Solereview对Vomero15做了拆解……机动战队北境灾难的根源,圣诞活动折翼的女武神即将登场本周六就是圣诞节了,按照游戏厂商的性子,本周肯定会推出圣诞节相关的活动。果不其然,机动战队在周五晚上更新后就直接放出了本周的圣诞的消息。大叔要是没记错的话,之前的圣诞节剧情是《……退伍军人误入直播电商,快手卖高端羊绒衫日均GMV百万进入电商行业是高发强人生的一次乌龙事件,却意外成为了他想要坚持一生的事业。从最初对服装的一问三不知到现在快手电商羊绒头部商家,高发强经过三年的摸索形成了自己的运营准则,并且带动……咽中有痰?解读一剂张仲景名方,可疏肝解郁行气散结,降逆化痰平时不知道你们有没有过这种感觉,就是痰总卡在喉咙里边吐也吐不出,咽也咽不下的感觉,非常地难受,但是也吃了很多化痰的药,但就是不见疗效,这可真是愁死人了。这可不单单只是有痰那么简……DOTA2深渊联赛S5赛后深渊联赛败者组,tundra21战DOTA2PITS5败者组开赛,tundra以21的比分淘汰了navi,接下来就带大家一同来看看本场比赛的对局结果。第一局比赛当中,tundra拿到了祸乱、黑鸟、精灵、潮汐以及……科普NBA老板们是干什么的?30支球队老板个人简介(西部篇)NBA能发展至今天的规模,这与过去75年间发生过的数次兼并、扩张密不可分。1937年,通用电气、凡士通轮胎和固特异轮胎这三家公司合作建立了NBL(美国篮球联盟),成立之初……前11个月山东签发RCEP原产地证书13。7万份出口享惠货值海关关员在企业调研RCEP原产地签证情况。陈星华摄中新网青岛12月12日电(胡耀杰蔡亚群)青岛海关12日发布消息称,据统计,今年前11个月,青岛海关、济南海关和山东省贸促……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网