惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
Forbes - Security
Forbes - Security
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
V
Visual Studio Blog
月光博客
月光博客
博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
The Register - Security
The Register - Security
S
SegmentFault 最新的问题
博客园 - 司徒正美
P
Proofpoint News Feed
Know Your Adversary
Know Your Adversary
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
Arctic Wolf
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
U
Unit 42
P
Proofpoint News Feed
Scott Helme
Scott Helme
MyScale Blog
MyScale Blog
T
Tenable Blog
Hugging Face - Blog
Hugging Face - Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
P
Palo Alto Networks Blog
V
V2EX
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
Latest news
Latest news
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
博客园 - 【当耐特】
B
Blog RSS Feed
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
NISL@THU
NISL@THU
C
Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security

博客园 - 轻松逍遥子

Oracle 9i的数据类型 javascript事件查询综合 - 轻松逍遥子 - 博客园 用正则表达式检验是否输入日期时间是有效&&&&&& execCommand指令集 用net命令使局域网文件批量同步更新 无分]遍历表单 - 轻松逍遥子 - 博客园 设计有复杂客户端Script的服务器控件 [WEB开发] 基于XMLHTTP的简单实例 xmlhttp组件获取远程文件并筛选出目标数据 - 轻松逍遥子 - 博客园 XMLHTTP Get HTML页面时的中文乱码之完全客户端Script解决方案 XMLHTTP---介绍(自动抓网页内容) - 轻松逍遥子 - 博客园 Spring与EJB3.0的比较 手把手配置Hibernate环境 运用Jakarta Struts的七大实战心法 JBuilder2005+JBOSS+Oracle9i环境配置[zt]- - 无限级目录树最优算法的新研究 解决JBuilder在中文系统中光标错位的问题(10.18最新,适合JB2005) 不经过临时文件,直接从BLOB字段,下载数据显示图片! servlet实现从oracle数据库的blob字段中读出文件并显示 关于下载的一点心得!!(如何弹出对话框!)
struts+spring+hibernate之间的关系与差别(ZT)- -
轻松逍遥子 · 2005-08-22 · via 博客园 - 轻松逍遥子

Struts:用来作VC部分,即控制和显示作用;
    Spring:用来作数据库操作的事务处理,在配置文件里配置好就OK了;
    Hibernate:用来作DAO处理,在此用了Spring的getHibernateTemplate()方法来操作hsql进行数据增删改等操作。

1,先说说你的表示层
其实没有必要使用struts,除非你有历史遗留问题不得不用struts,因为spring的mvc已经足够好了:
a.清晰的模型对象传递,这个模型对象可以是任何java对象,如果你不在意在各层之间传递同一个对象的话,这个模型对象就可以是hibernate的persistent object,通过open session in view,你可以以一致的方式使用业务模型对象。
b.reference data,让你清晰的处理look up数据。
c. 多种可供选择的视图解析类型,可以在prpperties文件中定义page的逻辑名,或者定义在xml文件里的struts tiles逻辑名。
d.无干扰的数据绑定,一个

可以对模型对象和form进行绑定,就像struts自动填充formbean一样,但spring 的绑定功能不会干扰界面布局,也就是说,你仍然可以使用html编辑器对页面进行处理。
e.客户端验证。
f.服务器端验证。
g.多种可供选择的控制器,其中支持表单的控制器提供了类似vb中表单事件处理的功能,这是一系列的workflow,在你认为合适的地方,插入你的处理代码。

spring mvc与struts比较,可能只是少了很多taglib和页面布局,但这都可以通过第三方工具补充,因为视图相比于其他部分,毕竟更轻量级一些。可以选择的第三方工具可以是:displaytag,struts-menu,struts tiles,等等。

2,在说说业务逻辑部分
业务逻辑类可以用spring的beans进行配置,并由spring管理与表现层的控制器及更下层的DAO对象的关系。另外,还可以进行配置性的事务处理,一个interceptor配置,免去了你的所有烦恼。

3,dao层
用spring 封装后的hibernate API,让Hibernate继续瘦身,并且通过spring建立与上层的关系。

4,最后,说说hibernate的po
你可以选择你喜欢的任何方式进行建模,以下工具提供了足够的支持:
a. 从java对象到hbm文件:xdoclet
b. 从hbm文件到java对象:hibernate extension
c. 从数据库到hbm文件:middlegen
d. 从hbm文件到数据库:SchemaExport

至于可供参考的项目,可以看看spring的例子petclinic(spring+hibernate),还有一个不可不看的网站:http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse(struts+spring+hibernate或spring mvc + spring +hibernate)。另外,spring带的mvc step-by-step是一个很好的入门教程。

需要说明的是,spring仅仅为我们提供了一种设计和实现框架的方式,因此,项目的成功与否,是与我们的构架设计紧密相关的,在有了好的设计思想以后,善用spring,会让我们的成功来的更容易。