最近在做一个项目。采用J2EE作为开发平台,通过领域驱动开发(DDD)的方式进行开发。
首先说一下系统总体架构。系统分为表现层,业务层(业务层分为应用层和领域层),持久层,
其中表现层用Struts MVC框架,业务层用Spring框架,持久层用hibernate框架,现在主
要总结一下业务层和持久层。
业务层:根据DDD,业务层应该分为应用层和领域层,其中应用层的无状态的服务通过
Spring IOC容器进行装配和管理。核心业务逻辑放到领域层,而应用层只是一个很薄的层,
指挥领域层的模型对象完成业务操作。领域模型根据DDD分为了实体,值对象,和服务,其
中实体是系统中一些需要记录和跟踪的对象,比如Account对象等,值对象则是一些对实体
的描述,以及实体的状态等,比如项目的站内信中,可以将消息的状态做为抽象消息的值对
象。为了提高实体的内聚性,将一些不是实体的职责分配给领域层服务对象。当然DDD中还
有关于聚合,工厂,仓库,个人理解工厂主要是用来创建对象的,工厂控制了对象生命周期
的开始,而对象的生命周期不可能只有开始这么简单,所以仓库就发挥了作用,仓库就是用
来管理对象的中间状态的。仓库可以通过缓存来管理对象,提高系统的性能。至于事务处理,
因为项目不需要分布式,所以直接采用JDBC事务,具体就是通过Spring管理的hibernate
事务来实现,将事务边界界定在应用层服务的开始和结束,这样也充分发挥Spring的声明式
事务管理功能。
持久层采用hibernate框架来完成。首先定义一个支持CRUD操作的泛型DAO,然后利用
Spring支持回调模板类(HibernateTemplate)来实现最基础的CRUD操作,其它的Dao接
口继承泛型接口。这样CRUD操作在统一的基类中完成,并且还可以利用泛型带来的安全性
检查。
最后先请教一下各位兄弟,我对于应用层服务和领域层服务的划
分不是很清楚,请问一下各位具体的划分标准是什么?各位在项
目中怎么做的?我现在是把应用层服务当做Facade来用,用来
封装业务逻辑,各位兄弟还有什么好的方法吗?请指教一下,谢了。
分享到:
相关推荐
视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,...大白话讲解领域驱动设计的晦涩词汇,手把手学习战略设计和战术设计,并配合实际项目进行开发落地实战,包括四层架构、洋葱架构、六边形架构、整洁架构等讲解。
1 ARM嵌入式LINUX系统构建与驱动开发,北航版 驱动写的很详细,前期开发介绍也很好 2 ARM 嵌入式系统实验教程(二),北航版 有ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。 3 ARM嵌入式系统基础教程 ...
Java 的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1、掌握项目开发的基本步骤 2、具备极强的面向对象的分析与设计技巧 3、掌握用例驱动、以架构为核心的主流开发方法 ...
一个典型开发团队:新手、中级开发者、高级开发者/架构师(技术架构)、领域专家/产品经理(业务架构)、项目经理要解决的问题:将复杂的业务架构梳理好,并能为技术架构的设计提供要求或指导。总结:要进行一个业务...
设定了存储器的访问方式,设计了软件的4层结构:启动及模式规划层、硬件驱动层、操作系统层和用户应用程序层,给出了系统的存储器分配方案.规划了程序按文件系统存放的框架,特别说明了其中头文件的设计。提供了...
用项目总结来减少问题的重复发生 130 有效控制质量、工期、成本三大目标 133 在项目管理中面对面交流最重要 134 IT项目如何做好进度管理 135 对“项目时间管理”的认识和体会--“赶工和快速跟进”在工作中的运用 137...
Agile Java 测试驱动开发的编程技术.pdf Java 8 默认方法和多继承.docx Java NIO通信框架在电信领域的实践.docx java.png javaconcurrencyinpractice.pdf JavaEE学习笔记.pdf java_Java_学习笔记.pdf Java_...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
本文所对应的研究项目是一个基于Android智能手机的设计和实现,该智能手机在硬件上采用Marvell公司的PXA310处理器,其处理速度可达624MHz,除了一般手机必备的外设之外,还带有摄像头、蓝牙、WiFi、GPS等较高端的...
项目驱动 紧密结合初学者的学习习惯和认知规律,采用了大量简单而又实用的设计案例分析UI设计的基本理念。 强化技能 以移动UI设计师的核心岗位能力统筹全书的编写,代码设计突出项目开发的实战性与健壮性。 遵守...
第21章 测试驱动开发和重构 21.1 测试驱动开发 21.2 重构 21.3 参考资料 第四部分 细化迭代2—更多模式 第22章 UML工具与视UML为蓝图 22.1 前向、逆向和双向工程 22.2 什么是有价值特性的常见报告 22.3 对...
第21章 测试驱动开发和重构 21.1 测试驱动开发 21.2 重构 21.3 参考资料 第四部分 细化迭代2—更多模式 第22章 UML工具与视UML为蓝图 22.1 前向、逆向和双向工程 22.2 什么是有价值特性的常见报告 22.3 对...
第21章 测试驱动开发和重构 21.1 测试驱动开发 21.2 重构 21.3 参考资料 第四部分 细化迭代2—更多模式 第22章 UML工具与视UML为蓝图 22.1 前向、逆向和双向工程 22.2 什么是有价值特性的常见报告 22.3 对...
第21章 测试驱动开发和重构 21.1 测试驱动开发 21.2 重构 21.3 参考资料 第四部分 细化迭代2—更多模式 第22章 UML工具与视UML为蓝图 22.1 前向、逆向和双向工程 22.2 什么是有价值特性的常见报告 22.3 对...
第21章 测试驱动开发和重构 21.1 测试驱动开发 21.2 重构 21.3 参考资料 第四部分 细化迭代2—更多模式 第22章 UML工具与视UML为蓝图 22.1 前向、逆向和双向工程 22.2 什么是有价值特性的常见报告 22.3 对...
第21章 测试驱动开发和重构 21.1 测试驱动开发 21.2 重构 21.3 参考资料 第四部分 细化迭代2—更多模式 第22章 UML工具与视UML为蓝图 22.1 前向、逆向和双向工程 22.2 什么是有价值特性的常见报告 22.3 对...
第21章 测试驱动开发和重构 21.1 测试驱动开发 21.2 重构 21.3 参考资料 第四部分 细化迭代2—更多模式 第22章 UML工具与视UML为蓝图 22.1 前向、逆向和双向工程 22.2 什么是有价值特性的常见报告 22.3 对...