云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名交易_阿里云可用区_高性能

小七 141 0

域名交易_阿里云可用区_高性能

saphana是一个非常有趣、高效的内存数据库。它可以作为一个"黑匣子"服务器(租用的硬件,预装的软件)购买,您可以把它放在您的服务器室中,或者只是作为云服务使用。结合实际的RDBMS,您可以使用SAP HANA云平台执行环境来托管您的业务应用程序。

Vaadin是一个强大的UI框架,您可以轻松地与SAP HANA云平台(HCP)一起使用。有了它,您将经常使用纯Java,完全忘记您正在构建一个复杂的现代web应用程序。编程模型与javaswing非常相似,UI逻辑安全地存在于服务器的JVM中,在浏览器中,只有一个小型自动生成的瘦客户机可以安全高效地与服务器通信。而且它是开源的,在Apache2许可下可以免费使用。

有很多不同类型的应用程序,它们都有自己的定制需求,但是对于大多数商业应用程序来说,Vaadin是客户端开发模式(如SAPUI5)的一个很好的替代品。作为一名开发人员,软件企业有哪些,您将从Vaadin的纯Java/JVM方法中获得无与伦比的性能提升。

让我们看看您如何使用基于Vaadin的UI在HCP中执行SAP HANA云平台应用程序。我还介绍了一些关于项目设置和JPA使用的最佳实践,这可能很有趣,即使您正在使用或计划使用除Vaadin之外的其他东西。

一旦您下载了开发包,您可以查看捆绑示例。我从正式的持久化ejb示例派生出这个示例,它为您的应用程序提供了坚实的基础。在项目设置中,我会做一些不同的事情。强调Maven约定和更强大的模块化可能会在将来节省很多时间。

我建议在开始HCP开发时首先要做的是创建一个Maven概要文件来存储一些常用属性。在默认示例中,这是处理父项目的,但是如果您有许多小型HCP项目,这可能更方便。在项目的自述文件中可以找到这样一个配置文件定义的示例。您应该将SDK的路径替换为您环境中的路径,并将默认路径替换为您自己的用户名密码组合。

我们的最终项目将分为后端和UI模块,两者都由主项目构建。对于后端模块,我将通过应该获取和更新的实体放置所有JPA内容和EJB。无论您是使用Vaadin、任何其他UI技术构建应用程序,还是仅为第三方开发人员发布REST服务,应用程序的这一部分都几乎相同(~100%可重用)。

UI模块是一个相当标准的Java web应用程序项目,构建适合javaee6执行环境的war文件。您可以自然地将所有东西(JPA模型、EJB、vaadinui)组合到一个项目中,只创建一个war文件,但将应用程序拆分为模块将有助于更好地构建可重用的部分,并有助于将工作分散到更大的团队中。

最终项目的文件夹结构如下(简化):

本示例中的JPA模型有点像官方的SAP EJB持久性示例,但我希望它更先进一点。我添加了另一个JPA实体Team,它与Person对象有关系。我还为实体提取了一个抽象的超类。在AbstractEntity中,我放置了标识符、hashCode、equals方法和时间戳等内容,如created和lastModified。超类有助于避免大量的样板文件,这些样板文件几乎需要写入每个实体。

这就是抽象实体的样子:

实际实体(个人和团队)会变得简单一些。团队实体有其唯一的属性,看起来是这样的:

尽管许多J2EE老手对EJB有着健康的过敏反应,但是由于javaee6,没有理由不将与JPA相关的代码隐藏到EJB中。无状态本地EJB使您的代码更简单、更易于编写和维护,而且它的性能也非常好。例如,如果您将DAO编写为EJB,您可以在大多数情况下忘记事务管理,因为容器将自动截获我们的服务方法。

将JPA代码编写到基于EJB的服务中,还可以为您提供一个很好的分离模块,您可以在许多不同的应用程序中重用,无论您是使用Vaadin构建富webui,还是为第三方应用程序开发人员构建低级REST服务。我的例子中的PersistenceFacade,有一个业务方法,就这么简单:

我在上面添加了一个非常简单的JPQL例子,淘客app原生,但大多数情况下我并不建议使用JPQL或Criteria API来访问您的JPA实体。我最近写了一系列文章,包括三个优秀的JPA库Spring Data、DeltaSpike Data和QueryDSL,它们将帮助您以更高效的方式编写查询。在本例中,我使用QueryDSL编写方法,例如使用字符串过滤器过滤Person实体:

以上代码片段中的QPerson类是一个helper类,由QueryDSL基于JPA实体自动生成。通过这种方式,淘客pid,QueryDSL允许您使用类型良好的javaapi编写查询。高级Java IDE将帮助您编写查询,以便它们在第一次运行时实际工作,这在原始JPQL或SQL中并不常见。

Vaadin UI模块基本上是WAR文件,在后台作为servlet执行。在项目的pom.xml文件我们向hana后端模块添加了一个依赖项,这样包含业务逻辑的EJB就包含在生成的WAR文件中了。