博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Potala(1)——Introduction
阅读量:6515 次
发布时间:2019-06-24

本文共 1408 字,大约阅读时间需要 4 分钟。

  最近开始倒腾一个J2EE web应用。给它定了个很有意思的代码名字——Potala。系统采用了基于Struts2+Spring+JPA(由Hibernate提供)的开发平台。由于是第一次真正意义上的负责一个J2EE项目,所以准备将项目中的一些学习心得和主要关注点记录下来,可能对将来的学习也可以提供一定指导吧:)

 

基本框架:  

  最开始的想法是使用相对比较熟悉的Presentation+Facade+Service+DAO+Mdoel的模型。本来想对Hibernate进行下深入了解的,所以拜读了Gavin King的Java Persistence with Hibernate。读这本书的过程中,发现作者似乎更倾向于基于Domain Model的开发,而且原来的这套分层封装方法似乎也没有想象中的那么完美。又大概翻了下Martin Fowler大牛的Patterns of Enterprise Application Architecture,觉得似乎有必要尝试下基于Domain Model的开发。反正搞这个项目本来本来也是本着学习的精神来的,而且其他几个组员也基本都是从零开始,咱就试试吧:) 后来又发现一本很棒的书:Chris Richardson的Pojos in Action。仔细翻阅了下,大概确定了系统的基本框架。

  表现层:这层主要用Struts2的MVC来弄了,JS采用基于DOJO的开发吧,主要都丢给我们可爱的King同学去负责了。

  中间层:最开始的想法是用一个标准的Facade,但Java Persistence with Hibernate第16章介绍了一种很独特的方式——Command Pattern。虽然这种方式也有很多不完美的地方,但用它要做到对横切面的关注(比如授权)非常方便,而且多个Command之间组合起来也比较容易。就用它吧:)

  领域模型层: 套用Pojos in Action里的方案,主要由Entity、Value Object、Repository和Service构成。其中Entity和Value Object中集成一些通用的业务逻辑,Repository负责持久化工作,Service主要关注一些无法分发给单独的Entity或Value Object的逻辑。 在Domain Model,特别是Entity中集成业务逻辑的确有别于以前的编程模型,似乎关于这方面的争论在JavaEye等社区上也不少。但一个比较普遍的观点是:相对于哑对象(Dummy Object,在JavaEye上也经常有人称为贫血模型),这种方式比较好的体现了OO准则。咱也不去瞎搅和这些争论,同时也不求整个架构多完美,只要好用就行了:)

 

主要关注点:

      以下这些关注点是系统设计中的一些比较主要的问题。在接下来的一些学习笔记中,我将对这些问题进行详细描述。

  领域模型对类、属性、关系的识别和如何给领域模型添加行为;

  数据库事务的隔离级别和系统的并发控制;

  业务逻辑的封装,另外还包括每个操作一个会话问题的避免;

  单元测试和基于Struts2+Spring+JPA的集成测试;

  性能调优,主要包括缓存和抓取策略。

  

转载于:https://www.cnblogs.com/marco/archive/2008/12/09/1350976.html

你可能感兴趣的文章
win7 蛋疼的时间格式转化
查看>>
C++中二维数组的动态创建与处理
查看>>
SPOJ 10628 COT - Count on a tree(在树上建立主席树)(LCA)
查看>>
SpringInAction--Bean参数的自动注入
查看>>
素数筛
查看>>
centos /linux 修改目录或文件权限
查看>>
leetcode--
查看>>
访问者模式
查看>>
异步函数
查看>>
Openstack的vnc界面定制
查看>>
软考 2018年下半年卷 错题知识点记录
查看>>
仿网易邮箱5.0版UI
查看>>
winsow xp不能安装软件, 提示"中断" 是因为设置了 软件限制策略
查看>>
as3调用外部应用程序 as调用外部exe文件as3调用bat文件 未测试
查看>>
jQuery清空标签内容--防止内存泄露
查看>>
关于 HandlerMethodArgumentResolver 类 以及 WebArgumentResolver 类 自定义解析参数
查看>>
30个php操作redis常用方法代码例子
查看>>
阿里PB级Kubernetes日志平台建设实践
查看>>
监听者模式实践-java事件和事件监听器
查看>>
比RBAC更好的权限认证方式(Auth类认证)
查看>>