云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

域名交易_秘密百度云_哪家好

小七 141 0

今天,我们发布了SAP Cloud SDK for Java的3.0.0版。从版本号可以看出,这是一个新的主要版本,对应于许多更改、改进和新功能。在这篇博文中,我想带你了解新专业版本的动机,什么是大数据,详细说明发生了什么变化,并回答你可能遇到的任何进一步的问题。我们已经发布了关于如何迁移的单独技术指南。我也不会详细介绍新功能,您可以在普通的relase博客文章中找到这些功能。

在深入了解Java版本3之前,请简要回顾一下SAP Cloud SDK的内容。

SAP Cloud SDK于2019年5月发布,是SAP S/4HANA Cloud SDK的一个演变版本,是一个一致的工具集,大数据核心,用于在开发云本机扩展应用程序时与SAP解决方案交互。它允许您在云本地应用程序中利用SAP解决方案,包括SAP S/4HANA Cloud、SAP SuccessFactors、SAP C/4HANA等,并快速满足业务需求。它包括Java库、JavaScript库和连续交付库。

在推出SAP Cloud SDK时,Java SDK作为SAP S/4HANA Cloud SDK已经有一年半的时间了。我们故意没有在发布时重命名任何技术工件,以确保顺利采用。

那么为什么现在要使用新的主要版本呢。多年来,任何像SDK这样的产品都在不断发展,因为过去的决定不再适用(比如SAP S/4HANA的特定名称),因为环境已经改变(连接到下游系统的新方法,比如SAP Cloud Platform Extension Factory),或者因为——让我们面对现实——事后你会做出不同的决定。一个新的主要版本是一个解决这些变化的机会——改变我们应用的Java API的严格语义版本控制只允许在增加主要版本时才允许的事情,在这种情况下,从2增加到3。

在着手开发版本3时,我们同意了一个主要的愿景:提高开发人员在使用Java API时的体验"它只是工作"。这意味着它在任何情况下都是开箱即用的。例如,在没有HTTP请求的情况下,开发人员也不应该为了让SDK工作而被迫跳转。这颗北极星引导了下面概述的主要改进。

此外,我们还借此机会删除了不推荐使用的部件,并更改了应该以不同方式完成的较小的事情。我们重命名了Maven工件,将它们放在一个公共名称空间下com.sap.cloud网站.sdk。这使得命名更加清晰,因为术语s4hana仅用于特定于saps/4HANA的功能。本着同样的精神,我们删除了特定于ERP的术语,如ErpConfigContext和ErpQueryEndpoint。我们在多个地方统一了API,现在在整个API中使用了功能性Vavr库。

从发行说明中列出的全部更改列表中,这里是亮点。

新的目的地概念

目的地的概念已经进行了重大修改,以使目的地朝着一个通用的、轻量级的概念发展目标系统,使其不那么依赖于一个具体的平台。所有目的地现在都可以显式实例化,使测试更容易,并且必须显式传递以将目的地的解析与实际调用分离,例如,在OData VDM中。

新概念基于几个基本接口(如destination、HttpDestination和RfcDestination),淘客购物,默认和特定于平台的实现(如DefaultHttpDestination、ScpCfHttpDestination或ScpNeoHttpDestination),以及用于在不同类型之间动态转换的修饰器。

Resilience with resilience4j

版本3之前,sapcloudsdkforjava使用Hystrix库来实现重要的弹性功能,如断路器、隔板和时间限制器,SDK在这些功能中添加了多租户功能。Hystrix现在处于维护模式,所以是时候寻找一个新的、现代的弹性框架了,这是我们在resilience4j中发现的。同时,大数据算法,根据过去的经验,网云服务器,我们决定在SDK中引入一层抽象,将支持租户的弹性行为实现与具体框架分离。为此,版本3在包中引入了通用的函数样式适配器com.sap.cloud网站.sdk.cloudplatform.resilience软件包并使用resilience4j作为底层库提供了一个默认的弹性实现,使用ResilienceDecorator作为入口点,用弹性行为包装代码(callabe或supplier)。断路器等的配置发生在ResilienceConfiguration的实例中。

在这种情况下,我们也从Guava切换到允许使用任何符合JSR-107(JCache)的库进行缓存。

利用请求之外的SDK

如上所述,版本3的一个关键设计目标是在请求之外使用SDK标准的请求-响应场景更简单。以前,SDK通常依赖于在Servlet容器中运行并由请求触发的假设。必须使用特定的机制来实例化上下文。这在任何地方都无法避免,以便能够建立一个上下文来操作,但现在版本3变得更容易了。

对于一个,SDK现在更宽松了,并认为现在的请求是可用的,作为一种规范,而不是不寻常的情况。当需要时,为给定的租户或主体设置ThreadContext和运行代码变得容易多了,如发布博客中所述。

这只是一个高级概述,更多内容可以从迁移指南、发布博客和发布说明中学习。请注意,我们正在更新现有的教程和深度潜水。

我们的迁移指南涵盖了您。大多数步骤都是技术性的,可以通过仔细遵循指南来应用。