apache isis_使用Apache Isis快速进行SEMAT应用程序开发

apache isis

TL; DR这是关于一个帖子会谈SEMAT宠物项目我创建使用Apache伊希斯和部署到OpenShift在线这里http://semat.ofbizian.com

Apache Isis

作为主要在后端系统上工作的Java开发人员,我讨厌创建用户界面和处理Java脚本。 幸运的是,有一些Java项目,例如JSF(grrr),Apache Wicket和Vaadin,它们可以帮助完全避免使用Javascript并仍然创建功能用户界面。 但是即使有这些项目,开发人员也必须考虑并积极地从Java代码创建用户界面。 这类似于在诸如Hibernate之类的ORM时代编写自己SQL语句–只有在OOTB ORM不足以适合用例的情况下,我们才进行此活动。 这正是Apache Isis所适合的:给定域模型和映射注释,它将在运行时生成完整的用户界面。 从某种意义上说,Apache Isis是Java的OUIM(对象/用户界面映射)框架。


Apache Isis除了创建用户界面以外,还有很多其他功能,它是专注于域驱动设计的全栈快速应用程序开发框架。 但是,我们不讨论它,而是看一个使用Apache Isis创建的完整应用程序。

SEMAT精华内核

为了学习Apache Isis,我决定实现SEMAT模型并将其作为Docker容器部署到OpenShift Online。 简而言之,SEMAT(软件工程方法和理论)本质内核是OMG标准 ,它除其他外,还帮助定义了一个框架,用于从多个角度(称为alpha)描述软件项目的状态。

SEMAT阿尔帕州

想法是,可以使用以下七个字母以通用的方式描述每个项目:

利益相关者,机会,需求,软件系统,工作,团队,工作方式。 每个Alpha可以处于一个或多个状态,例如,
利益相关者可以是:认可,代表,参与,一致同意,满意等。此外,每个州在将Alpha过渡到该州之前,都需要满足某些条件。

利益相关者Alpha的州

如您所见,这是一个非常简单的域模型,带有状态机逻辑。

展示柜应用

够了,要查看我必须为此应用程序编写多少Java,请在github上检查项目的dom模块 。 所有其他框架代码都是通过maven插件生成的,不需要用户界面代码。 这是Project域实体屏幕渲染的屏幕截图:

作为Apache Wicket屏幕的项目视图

除了生成用户界面之外,Apache Isis还将使用相同的域模型生成REST API。 多么酷啊。

从域模型生成的SEMAT REST API

而这一切的好处在于,生成UI可以使您快速迭代域模型,将其显示给业务所有者以获取反馈并继续发展模型。

已实现/启用了一些SEMAT应用程序功能

  • 多租户
  • 每个租户管理多个项目
  • 管理项目Alpha状态
  • 每个租户的自定义Essence Alpha状态列表
  • 每个租户的自定义精华清单项目
  • Alpha状态蜘蛛/雷达图
  • 通过域模型自动生成基于Apache Wicket的UI
  • 从同一域模型自动生成REST API
  • 自我注册/注册
  • 审核用户操作
  • 会话记录
  • 国际化
  • 面包屑小径
  • 书签

生成并运行

检查自述文件以获取完整的详细信息,但是您可以在本地或在OpenShift上构建和运行该应用程序以进行尝试。

mvn clean install
cd webapp
mvn jetty:run
mvn clean install
docker build --rm -t bibryam/semat .
docker run -p 8080:8080 bibryam/semat

然后转到http:// localhost:8080 /并登录:user / user

部署到OpenShift

一旦您在本地或本地运行OpenShift
online并安装了oc客户端,然后可以使用以下命令部署已经构建的semat docker映像:

oc new-project semat
oc new-app bibryam/semat:latest -e CATALINA_OPTS=“-Xmx300m”
oc expose service semat

如果您不信任其他人构建的docker映像(您不应该这样做!),则可以使用选项2和3构建如上所示的自己的docker映像,并将其推入自己的docker注册表并从中运行应用程序:

oc new-app your_name/semat:latest -e CATALINA_OPTS=“-Xmx300m”

或者,您可以避免同时安装和运行docker,并在OpenShift上构建源代码和docker映像。 这就是所谓的OpenShift源到图像
方法 。 您可以通过使用例如“ Red Hat JBoss Web Server 3.1 Tomcat 8 1.0”模板并指向SEMAT github存储库从OpenShift UI进行操作。 或使用项目本身提供的模板:

oc create -f semat-openshift-template.json
oc process semat

使用源到映像的方法允许设置github Webhooks,具有Red Hat基本映像,添加jolokia,完成Java内存配置等。

OpenShift上的现场演示

请参阅试用该应用程序,检查在OpenShift Online上运行的实时演示
http://semat.ofbizian.com

总之,如果您拥有一个经常更改的域模型,并且更改域逻辑的敏捷性比用户用户界面的外观更为重要,请查看Apache Isis。 这是一个令人难以置信的高效且快速的业务应用程序开发框架。

翻译自: https://www.javacodegeeks.com/2017/12/rapid-semat-application-development-apache-isis.html

apache isis

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MacBook外接显示器及相关设置详解(分屏/多屏)

文章目录一、连接显示器和电脑二、打开显示器设置界面三、调整显示器图标位置四、设置主显示器五、移动 Dock六、镜像模式七、合盖模式八、扩展模式九、设置外接显示器竖屏显示十、外接显示器后,如何调出更多分辨率十一、关于程序坞显示的问题一、连接显示器和电脑 …

ibm liberty_使用Eclipse和Open Liberty的Java EE 8上的Java 9

ibm liberty几周前,我写了一篇文章,题目是哪个IDE和服务器支持Java EE 8和Java9 ,着眼于Java 9和Java EE 8之间的当前状态。您可以期望事情发展很快,现在我们有了一些alpha和支持Java 9和Java EE 8的开发版本。这些是– Payara 5…

关键词分词工具_快图制作工具 | 如何制作词云图?

点击蓝字关注我们如何制作词云图?首先,我们需要对“词云”有个简单的概念。“词云”这个概念最先由美国西北大学新闻学副教授、新媒体专业主任里奇戈登(Rich Gordon)提出。“词云”(别名:文字云,外文名:wordle)即由词汇…

openhub_OpenHub框架–下一个有趣的功能

openhub这是有关OpenHub框架系列的第三篇文章-第一篇介绍OpenHub框架 ,第二篇介绍异步消息传递模型 。 该系列的最后一篇文章将更详细地介绍其他一些有趣的功能,并说明为什么OpenHub可以成为您的集成项目的理想选择的原因。 节流 节流是一种功能&#…

售票系统的组件图和部署图_识读配电箱系统图

配电箱确实有很多字母,要熟悉这些字母的基本含义,才能更准确地知道配电箱系统图的意思。网上查了一些资料,发现配电箱中的字母实在是太多了,先简单说几个需要基本认识的字母:GCK、GCS、MNS是低压抽出式开关柜&#xff…

packt_Packt和Java Code Geeks提供的$ 5 Java编程书籍!

packt你好,极客! 今天,我们为您带来一些激动人心的消息! Java Code Geeks和Packt联手为您提供广泛的书籍库每周折扣。 对于开发人员来说,Java仍然是最强大的选择之一,它是定义企业和移动设备的语言。 本…

MacBook 如何一次性关闭所有程序的通知消息

特别反感应用程序经常弹出通知消息,挨个去关闭应用程序的通知消息又特别麻烦,可以打开『勿扰模式』,这就可以屏蔽掉所有的通知消息了。

反射获取list泛型_Android 从浅到懂使用反射机制

定义Java 反射机制是发生在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法;对于任何一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。使用…

谷歌 recaptcha_在Spring Boot应用程序中使用Google reCaptcha

谷歌 recaptcha介绍 Google的reCaptcha是一个库,用于防止漫游器将数据提交到您的公共表单或访问您的公共数据。 在本文中,我们将研究如何将reCaptcha与基于Spring Boot的Web应用程序集成 设置验证码 您应该从管理面板创建API密钥。 您必须创建一个示例…

获取当地天气_Mac 天气预报动态壁纸工具Living Weather HD 4.4.4

这款独特的非凡应用程序将天气呈现在您的桌面上,它能够预报天气状况,并在桌面上使用相应的美丽动态壁纸场景。 天气HD也可以用作屏保。 主要功能: ● 在桌面上了解世界各地当前的天气状况和未来状况 ● 与当前天气状况、今天或明天预报相应的…

计算机系统组成_网络教育统考计算机应用基础题库(计算机系统的组成2)

点击蓝字关注我哦11在微型计算机的各种设备中,既用于输入又可用于输出的设备是____。A、磁盘驱动器B、键盘C、鼠标D、绘图仪点击空白处查看答案参考答案:A12计算机的硬件系统由五大部分组成,下列各项中不属于这五大部分的是______。A、运算器B、软件C、I…

shell开启飞行模式_今天才知道,原来手机的飞行模式用处那么多,看完涨知识了...

想必大家都知道,手机里有个飞行模式,是在乘坐飞机时使用的。其实除了这个功能之外,飞行模式还有很多其他的妙用,下面笔者就为大家一一进行介绍。一、 加快充电速度有些特殊情况你想加快手机的充电速度时,可以试着开启飞…

axure怎么做5秒倒计时_五个月宝宝早教,5个月婴儿早教怎么做

五个月宝宝早教,5个月婴儿早教怎么做,5个月宝宝是需要开始有意识的进行精细动作的家庭训练了5个月宝宝的一般特点:到了5个月时,能用眼睛观察周围的物体了,而且对什么都感到新奇好玩,能在眼睛的支配下抓住东…

图像融合亮度一致_重磅干货低光图像处理方案

点击上方“AIWalker”,选择加“星标”或“置顶” 重磅干货,第一时间送达Tips:一点点提示,因内容较多建议先关注,再置顶,最后端杯茶来精心浏览。背景低光图像是夜晚拍照时极为常见的一种现象。不充分的光…

Adobe PhotoShop(PS) for Mac 如何隐藏切片框?

如何取消显示如下图所示的切片框: 打开『视图』➟ 『显示』,把『切片』前面的勾去掉,如下图所示:

邮宝打印面单尺寸调整_如何打印身份证的实际尺寸?怎样用照片打印身份证复印件...

点击上面 蓝色 文字关注我们,了解选购百科知识,快乐健康不停!怎样打印身份证复印件?可以把身份证的照片导入电脑或者扫描件打印黑白的即可。如何打印身份证的实际尺寸?二代身份证的实际尺寸是:85.6MM X 54M…

取模和求余运算

文章目录背景探究总结被除数 dividend 用 a 表示; 除数 divisor 用 b 表示; 商 quotient 用 q 表示; 余 remainder 用 rem 表示; 模 modulo 用 mod 表示。 背景 最近在一道 Java 习题中,看到这样的一道题:…

图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...

编者按:今年Jol Greffier博士等在European Radiology (IF 4.1)上发表了题为《Image quality and dose reduction opportunity of deep learning image reconstruction algorithm for CT: a phantom study》的文章,通过与混合迭代重建算法(IR)对比&#x…

oracle中sp怎么写_校招简历中的实习和项目经历该怎么写?

在2017年和2018年,我针对校招生的简历分别写了两篇文章,一篇是《秋招中的互联网产品、运营岗,该如何准备?》,里面有一部分内容是关于简历的准备;另一篇是《如何用产品思维解决简历问题?七步简历…

自然语言处理领域基本概念笔记

自然语言处理 词向量: 自然语言处理问题要转化为机器学习的问题,首先就要把单词数学化表示,就是用n维实数向量来代表一个单词。 对话系统 对话系统发展历程的三个阶段: 1.基于符号规则和模板的对话系统 2.基于统计机器学习的…