ssh架构(struts+spring+hibernate)介绍和一个例子

上传人:第*** 文档编号:34064870 上传时间:2018-02-20 格式:DOCX 页数:13 大小:245.02KB
返回 下载 相关 举报
ssh架构(struts+spring+hibernate)介绍和一个例子_第1页
第1页 / 共13页
ssh架构(struts+spring+hibernate)介绍和一个例子_第2页
第2页 / 共13页
ssh架构(struts+spring+hibernate)介绍和一个例子_第3页
第3页 / 共13页
ssh架构(struts+spring+hibernate)介绍和一个例子_第4页
第4页 / 共13页
ssh架构(struts+spring+hibernate)介绍和一个例子_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《ssh架构(struts+spring+hibernate)介绍和一个例子》由会员分享,可在线阅读,更多相关《ssh架构(struts+spring+hibernate)介绍和一个例子(13页珍藏版)》请在金锄头文库上搜索。

1、举一个小例子加入我要盖一件小平房(做一个网站),我需要做的是: 1:买一块地。(租一台服务器)-1 天 2:申请一个门牌号码(买一个域名)-1 天 3:买材料,请 2、3 个工人,开始盖房(准备所需要的开发工具 IDE什么的,搭建测试环境,找 2,3 个程序员-刚毕业的大学生就可以了)。-1周 4:盖房(敲代码编程)-1 到 3个月。 5:房子盖好了,东敲敲西敲敲看牢不牢固(自己测试一下功能都齐全了没)-1 周。 6:如果有问题,比方说卧室不够透气,把卧室的墙多开一扇窗户(哪个页面有问题,删除重新写一个)。比方说墙里面的电线发现有问题,把墙凿开,换一根电线。 6:完工。 总共耗时 2-4个月左

2、右。 现在我要盖一栋大楼(开发一个企业级项目),本质上还是盖房子,但是如果就像盖小平房一样的去做。结果是怎样的呢? 盖到 18楼了,突然说 5楼内测的电线堵住了,5 楼以上都没有点,于是得把 5楼以上的全拆了,拆到 5楼,把墙凿开,把电线换一根,再继续往上面盖。 相信没有哪栋大厦是这样盖出来的。 于是有了建筑师(软件架构师)这个职位,有了建筑设计学(软件架构学)这么个说法。 盖大楼,一开始的步骤是这样的。 地还是要买,不过得做土地勘察,样本采集,看地质如何。 然后得画图纸,这图纸一画就是很久,要考虑到整栋大楼的方方面面,哪些墙可以供拆除,就在里面放电线水管什么的。哪些是主力墙不能拆除。这里卖弄

3、的学问太多,笔者也无法弄清楚。 然后就是打地基。这也是相当重要的环节,地基没打好,整个房子都不稳固。然后就是用钢筋水泥等,打造整栋大楼的框架。让房子非常坚固。 再后才是逐步完善大楼内部,一层层的砌砖,一间间地粉刷,装修。就算某一块出了问题。去掉或者修复那一块就行了,整栋大楼屹立不倒,稳稳当当。 企业级项目中,也是同安的过程。 先用 UML建模,建立数据库模型,项目的分层架构设计,使用框架让整个项目健壮起来,动一处而不会牵动全身。 struts,spring,hibernate都是为 了让项目更健壮而产生的。如果只是要做一个小网站,我觉得很没有必要使用这些东西,就 ASP,PHP 一定能做得更快

4、,就像盖小平房一样。就算要用 Java,就用 JSP+JavaBean就行了。如果是开发企业级项目,ASP 和 PHP是绝对不能跟 J2EE相提并论的。 Struts是 MVC框架,它的作用不是让人能干什么(它能做的事 JSP都能做),它的作用是不能让人干什么。就好像,设计师要砌墙工人在哪里砌砖,他就不能去别出砌一样。给程序语言严格的规范,让它按照规范走,不会随心所欲地去编代码。这样可以保证项目的高度一致性。 Spring是 J2EE轻量级框架。它的做法好比把项目分成一个个地组件,哪一块出了问题,换掉那一块就是了。别的地方根本不用动。就好像我刚刚举的 5楼电线出了问题,就在 5楼把墙凿开,换一

5、个电线即可,不用担心 5楼的墙凿开上面的会塌下来。 Hibernate是 ORM工具,不能称之为框架,它至少至少有一个好处,在项目做移植数据库的时候,不用切换数据库层的代码。当然它的好处很多。笔者在所有的开源技术中,也最钟情对 Hibernate的研究。 不过这些问题,都只有在很大的项目开发中才会用到。所以如是是小项目开发,不建议使用 J2EE.StrutsStruts是一个基于 Sun J2EE平台的 MVC框架,主要是采用 Servlet和 JSP技术来实现的。Struts框架可分为以下四个主要部分,其中三个就和 MVC模式紧密相关: 1、模型(Model),本质上来说在 Struts中

6、Model是一个 Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向 Action的转发过程是基于由 struts-config.xml文件描述的配置信息的。 2、视图(View),View 是由与控制器 Servlet配合工作的一整套 JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面。 3、控制器(Controller),本质上是一个 Servlet,将客户端请求转发到相应的 Action类。 4、一堆用来做 XML文件解析的工具包,Struts 是用 XML来描述如何自动产生一些 JavaBean的属性的,此外 S

7、truts还利用 XML来描述在国际化应用中的用户提示信息的(这样一来就实现了应用系统的多语言支持)。SpringSpring是轻量级的 J2EE应用程序框架。Spring的核心是个轻量级容器(container),实现了 IoC(Inversion of Control)模式的容器,Spring 的目标是实现一个全方位的整合框架,在 Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立, 也可以使用其它的框架方案加以替代,Spring 希望提供 one-stop shop的框架整合方案 。Spring不会特別去提出一些子框架来与现有的 OpenSource框架竞争,除非它觉得所

8、提出的框架夠新夠好,例如 Spring有自己的 MVC 框架方案,因为它觉得现有的 MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可 以在 Spring中整合您的 Struts框架 。Spring的核心概念是 IoC,IoC 的抽象概念是依赖关系的转移,像是高层模组不应该依赖低层模组,而是模组都必须依赖于抽象是 IoC的一种表现,实现必须依赖抽象,而不是抽象依赖实现也是 IoC的一种表现,应用程序不应依赖于容器,而是容器服务于应用程序也是IoC的一 种表现。Spring的架构性的好处 Spring能有效地组织你的中间层对象,无论你

9、是否选择使用了 EJB。如果你仅仅使用了 Struts或其他的包含了 J2EE特有 APIs的 framework,你会发现 Spring关注了遗留下的问题。 Spring能消除在许多工程上对 Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。 Spring 能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字 或系统属性,为此不得不读 Javadoc乃至源编码吗?有了 Spring,你可很简单地看到类的 JavaBean属性。倒置控制的使用(在下面讨

10、论)帮助 完成这种简化。Spring 能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。 Spring被设计为让使用它创建的应用尽可能少的依赖于他的 APIs。在 Spring应用中的大多数业务对象没有依赖于 Spring。 使用 Spring构建的应用程序易于单元测试。 Spring能使 EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用 POJOs或 local EJBs来实现业务接口,却不会影响调用代码。Spring帮助你解决许多问题而无需使用 EJB。Spring 能提供一种 EJB的替换物,它们适于许多 web应用。例如,Spring 能使用 AOP提供声明

11、性事务而不通过使用 EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要 JTA实现。 Spring为数据存取提供了一致的框架,不论是使用 JDBC或 O/R mapping产品(如 Hibernate)。 Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。 Spring能做什么? Spring提供许多功能,在此我将快速地依次展示其各个主要方面。 任务描述: 首先,让我们明确 Spring范围。尽管 Spring覆盖了许多方面,但我们已经有清楚的概念,它什么应该涉及和什么不应该涉及。 Spring的主要目的是使 J2EE易用和促进好编程习惯。 Sprin

12、g 不重新开发已有的东西。因此,在 Spring中你将发现没有日志记录的包,没有连接池,没有分布事务调度。这些均有开源项目提供(例如 Commons Logging 用来做所有的日志输出,或 Commons DBCP用来作数据连接池),或由你的应用程序服务器提供。因为同样的的原因,我们没有提供 O/R mapping层,对此,已有有好的解决办法如 Hibernate和 JDO。 Spring的目标是使已存在的技术更加易用。例如,尽管我们没有底层事务协调处理,但我们提供了一个抽象层覆盖了 JTA或任何其他的事务策略。 Spring没有直接和其他的开源项目竞争,除非我们感到我们能提供新的一些东西。

13、例如,象许多开发人员,我们从来没有为 Struts高兴过,并且感到在 MVC web framework 中还有改进的余地。在某些领域,例如轻量级的 IoC 容器和 AOP框架,Spring 有直接的竞争,但是在这些领域还没有已经较为流行的解决方案。(Spring 在这些区域是开路先锋。) Spring也得益于内在的一致性。 所有的开发者都在唱同样的的赞歌,基础想法依然是 Expert One-on-One J2EE设计与开发的那些。 并且我们已经能够使用一些主要的概念,例如倒置控制,来处理多个领域。 Spring在应用服务器之间是可移植的。 当然保证可移植性总是一次挑战,但是我们避免任何特定

14、平台或非标准化,并且支持在 WebLogic,Tomcat,Resin,JBoss,WebSphere 和其他的应用服务器上的用户。Spring的核心即是个 IoC/DI的容器,它可以帮程序设计人员完成组件之间的依赖关系注入,使得组件之间的依赖达到最小,进而提高组件的重用性, Spring 是个低侵入性(invasive)的框架,Spring 中的组件并不会意识到它正置身于 Spring中,这使得组件可以轻易的从框架中脱离, 而几乎不用任何的修改,反过来说,组件也可以简单的方式加入至框架中,使得组件甚至框架的整合变得容易。Spring最为人重视的另一方面是支持 AOP(Aspect-Orien

15、ted Programming),然而 AOP框架只是 Spring支持的一个子框架,说 Spring框架是AOP框架并不是一件适当的描述,人们对于新奇的 AOP 关注映射至 Spring上,使得人们对于 Spring的关注集中在它的 AOP框架上,虽然有所误解,但也突显了 Spring的另一个令人关注的特 色。Spring也提供 MVC Web框架的解決方案,但您也可以将自己所熟悉的 MVC Web框架与 Spring解合,像是 Struts、Webwork 等等,都可以与Spring整合而成为进用于自己的解決方案。Spring 也提供其它方 面的整合,像是持久层的整合如 JDBC、O/R

16、Mapping 工具(Hibernate、iBATIS)、事务处理等等,Spring 作了对多方面整合的努力,故说 Spring是个全方位的应用程序框 架。AJAX全称“Asynchronous JavaScript and XML”(异步 JavaScript和 XML),是指一种创建交互式网页应用的网页开发技术。它有机地包含了以下几种技术:基于 web标准 (standards-based presentation)XHTML+CSS 的表示; 使用 DOM(Document Object Model)进行动态显示及交互; 使用 XML 和 XSLT 进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索;使用 JavaScript 将所有的东西绑定在一起。类似于 DHTML或 LAMP,AJAX 不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于 AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。ajax优势传统的 web应用允

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号