作者TonyQ (骨头)
看板java
标题[讨论] J2EE的framework
时间Fri Jun 20 05:26:12 2008
来讨论一下framework吧,
说真的我都快被 framework 给搞昏了,底子太差。-.-a
以前我觉得有必要再碰framework,加上手边资讯不多,
所以迟迟没有碰,现在工作有机会用上了,来写点东西分享/讨论一下。
────────────────────────────────
由於我是直接看前辈code写code,所以很多基础观念可能有点偏差,
除了webwork跟hibernate的部份有q老大带过应该还没忘光以外,
还请大家不吝指教。 =.=a
来讲一下我的认知,
webwork ->
设定actionName、actionClass跟jsp档案的关联
简单的类比就是先接到一个servlet处理完後,
再用处理完的变数跑jsp,得到呈现後的结果,
做两层的用意在於可以把一些复杂的运算在jsp前就已经先处理好,
jsp就可以专心做view端的显示。
我能想到的优缺点:
如果是同一个页面同一份资料需要拆成多个子页面,
比方说像是ajax 载入可能就会拆成一个页面中多个子资料区,
就可以采用多个actionName指向同一个actionClass中的不同method,
达到後端套版不用再做一次,也不需要再多写一个档案。
(传统jsp的作法应该是直接在创一个jsp起来写,这里可以省这个功。)
另外就是像pagenotfound之类的状态过滤也可以在这里做。
他主要需要维护的设定档->xwork.xml
Hibernate
严格来说他不只是J2EE的framework,用途是把资料库的处理物件化的
O-R Mapping(Object-Relation-Mapping)工具。
为达成这个目标他把物件至少分成两层,一个叫Model层,
通常在model层你会有一个成员完全对照资料库中某个表格的物件。
(当然,你必须要再撰写一个.hbm档来告诉hibernate他的成员关系,
这部份有一些自动化工具可以帮忙,如先前所介绍过的xdoclet。)
有model後再来就是要让model活起来,需要的就是处理model的物件,
也就是DAO (Data Access Object),他可以帮你简化CRUD的内容。
再上去通常还会再有一层manager,
可以再对DAO做到比CRUD更高层级的包装。
在这里应该还要有交易(transcation)概念,
不过这部份我并没有学的很好,所以先不谈。Orz
他需要维护的设定档-> *.hbms
以及一个告诉hibernate要读哪些hbm设定档的设定档
(我不确定这个档案叫什麽,我只知道我们公司的作法。XD)
Spring
用来管理你Action、Dao中所需要用到的任何通用成员的初始化,
比方说我今天MessageBoardAction(留言板行为)
可能需要 MessageDao(留言)、UserDao(使用者)两者的协助,
我就可以在Spring中先把MessageDao、UserDao所需要的资源先写好,
再写action-beans把MessageDao、UserDao给引进MessageBoardAction。
这样我就可以不用在MessageBoardAction想方设法,
去把MessageDao 跟UserDao给new出来。
当然Spring本身有提供一些操作用的Template。
要维护的设定档-> action-beans.xml ...等等等等
(他是设定档最多的=.=)
────────────────────────────────
基本上设定档的部份是目前最干扰我的,常常写完之後忘记哪里要改那个
config,跑完之後出错误才想到。...orz
framework能干麻,他怎麽去帮我们简化*这些工作,
是我在还没有接触framework之前最关心的事情,
既然现在略窥一二,就拿出来一起讨论一下。
*注简化不全是指减少,有时也指维护或扩充时较为简易)
---
不过我是觉得framework并不是新手入门的好帮手,或者不用学习的工具,
(也就是你不会听到学JSP/servlet干嘛,直接学Framework就好的言论。)
他是一种把已经做到令人厌烦的事情用某种方式给包装起来,
达到更快速更「乾净」的思维空间,他并不代表easy,而是simplicity。
--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.27.68
※ 编辑: TonyQ 来自: 220.134.27.68 (06/20 05:28)