写点什么

Apache Isis:领域驱动设计的 Java 框架

  • 2013-01-18
  • 本文字数:839 字

    阅读完需:约 3 分钟

近日,Apache发布了Apache Isis ,这是个用于快速开发领域驱动应用的Java 框架。用户可以将精力放在领域对象的开发上,Apache Isis 则负责持久化、安全与用户界面。Apache Isis 遵循六边架构模式,将领域模型置于中间位置,而表示、持久化与其他服务都依赖于领域模型。Apache Isis 在去年10 月成为Apache 顶级项目,其1.0 版于去年12 月发布。

Apache Isis 遵循约定优于配置,开发者会根据一套约定与注解来编写 POJO 领域对象。接下来,这些对象会被 Isis 框架解析,框架还会负责展现、安全与持久化。当 Web 应用或是 RESTful API 遵循了 Restful 对象规范时,Apache Isis 就可以在运行期生成领域模型的展现。开发团队可以使用自动生成的 Web 应用与 Web 服务进行快速原型,甚至是产品部署。

Apache Isis 架构

Apache Isis 可扩展且可定制。开发团队可以选择不同的视图、对象存储、安全机制、分析存储与编程模型。可用的视图有 Wicket、RestfulObjects、Scimpi、DnD、HTML、JUnit 与 BDD Concordion。可用的对象存储有 JDO、NoSQL、SQL 与 XML。安全可以通过文件、Shiro、LDAP 或 SQL 实现。分析可以存储为 XML 或是数据库中。领域对象(通常使用 Java 编写)还可以使用 Groovy 编写,使用 Groovy 编程模型组件。Isis 1.0 带有 Isis 核心、基于文件的安全、JDO 对象存储、Wicket 视图与 Restful Objects 视图。其他组件仍然在孵化器中。

要想上手,请访问 Apache Isis Quickstart Archetype 页面,你可以通过介绍使用 Isis Maven 构件创建新的 Isis 应用。这会生成一个简单的单类领域模型,用于记录待办事项。它还包含了多个 Maven POM 文件,一个是父 POM,一个是领域对象模型,其他的则是不同的组件,如 JDO 对象存储与 Wicket 视图。Isis 还有一个 CheatSheet ,用于帮助你回忆该遵循哪些约定或是该使用哪些注解。

要想了解更多信息,请访问官方的 Apache Isis文档视频示例教程。源代码位于 Isis Apache 仓库 GitHub 上也有镜像。

查看英文原文: Apache Isis: Java Framework for Domain-Driven Design

2013-01-18 03:0610619
用户头像

发布了 88 篇内容, 共 273.7 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

手撕HashMap源码

程序员阿杜

Java 源码

Tapdata 肖贝贝:实时数据引擎系列(四)-关于 Oracle 与 Oracle CDC

tapdata

oracle

Redis与Memcache对比

Linux服务器开发

数据库 redis 网络编程 Linux服务器开发 Memcache

三涧溪村:乡村产业插上数字化翅膀

工业互联网

你了解自己的业务IO么?

焱融科技

云计算 技术 分布式 高性能 存储

做百度AI工程师,还要会“相牛”?

百度开发者中心

AI 最佳实践 方法论

学生管理系统详细架构设计

Nullrable

网络攻防学习笔记 Day128

穿过生命散发芬芳

开发安全 9月日更

♟Go语言那些事儿之Redis连接与数据操作♟

Regan Yue

Go 语言 9月日更

RVB2601 应用开发实战系列一: Helloworld 最小系统

Roy夹馍

物联网 risc-v 嵌入式开发

Premo测试框架详解

趣链科技

区块链 测试工具 测试发开

逐梦航天—数字孪生技术仿真火箭发射!

ThingJS数字孪生引擎

大前端 物联网 可视化 航天 数字孪生

做百度AI工程师,还要会“相牛”?

百度大脑

人工智能

浅谈实时语音质量监控系统

RTE开发者社区

音视频

【墨天轮专访第三期】达梦数据库冯源:丢掉幻想投入战斗,国产数据库的机遇窗口已经来临!

墨天轮

数据库 国产数据库 达梦

iOS 屏幕实时共享功能实践(内附详细代码)

融云 RongCloud

ios 音视频

TLS协议分析 (一) 设计目标及历史

OpenIM

带你彻底认识Paxos算法、Zab协议和Raft协议的原理和本质

Java 架构 面试 分布式 计算机

执行update语句,用没用到索引,区别大吗?

Simon

MySQL 索引

NeonIO 云原生存储简介与应用

QingStor分布式存储

云原生 分布式存储

21年字节+美团+腾讯,大厂必问面试真题总结(Java岗)

Java架构师迁哥

TLS协议分析 (二) 架构总览

OpenIM

关于takin-data,你想知道的都在这里(一)启动命令篇

TakinTalks稳定性社区

RVB2601应用开发实战系列三: GUI图形显示

Roy夹馍

物联网 risc-v 嵌入式开发

没项目经历,面试有点怂....

Java架构师迁哥

tomcat启动失败常见错误

hasWhere

关于takin-data,你想知道的都在这里(二)trace日志篇

TakinTalks稳定性社区

LeetCode刷题283-简单-移动零

ベ布小禅

9月日更

mac idea配置类和方法的注释

孙强

方法 Mac IDEA 添加注释

RVB2601应用开发实战系列二: 跑马灯

Roy夹馍

物联网 risc-v 嵌入式开发

后疫情时代新机遇,运营商如何把握智能家居市场?

鲸品堂

智能家居 运营商 智能家居商业模式

Apache Isis:领域驱动设计的Java框架_Java_Bienvenido David_InfoQ精选文章