



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、StrutsStruts 是一个基于 SunJavaEE 平台的 MVC 框架,主要是采用 Servlet 和 JSP 技术来实现 IStruts 框架可分为以下四个主要部分,其中三个就和 MVC 模式紧密相关:1、模型(Model),本质上来说在 Struts 中 Model 是一个 Action 类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向 Action 的转发过程是基于由struts-config.xml 文件描述的配置信息的。2、视图(View),View 是由与控制器 Servlet 配合工作的一整套 JSP 定制标签库构成,
2、利用她们我们可以快速建立应用系统的界面。3、控制器(Controller),本质上是一个 Servlet,将客户端请求转发到相应的 Action 类。4、一堆用来做 XML 文件解析的工具包,Struts 是用 XML 来描述如何自动产生一些JavaBean 的属性的, 此外 Struts 还利用 XML 来描述在国际化应用中的用户提示信息的 (这样一来就实现了应用系统的多语言支持)。SpringSpring 是轻量级的 JavaEE 应用程序框架。Spring 的核心是个轻量级容器(container),实现了 IoC(InversionofControl)模式的容器,Spring的目标是实
3、现一个全方位的整合框架,在 Spring 框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring 希望提供one-stopshop 的框架整合方案。Spring 不会特别去提出一些子框架来与现有的 OpenSource 框架竞争,除非它觉得所提出的框架别新别好,例如 Spring 有自己的 MVC 框架方案,因为它觉得现有的 MVC 方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在 Spring 中整合您的 Struts 框架。Spring 的核心概念是 IoC,IoC 的抽象概念是依
4、赖关系的转移,像是高层模组不应该依赖低层模组,而是模组都必须依赖于抽象是 IoC 的一种表现,实现必须依赖抽象,而不是抽象依赖实现也是 IoC 的一种表现,应用程序不应依赖于容器,而是容器服务于应用程序也是 IoC 的一种表现。Spring 的架构性的好处Spring 能有效地组织你的中间层对象,无论你是否选择使用了 EJB。如果你仅仅使用了Struts 或其他的包含了 JavaEE 特有 APIs 的 framework,你会发现 Spring 关注了遗留下的问Spring 能消除在许多工程上对 Singleton 的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对
5、象特性。Spring 能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读 Javadoc 乃至源编码吗?有了 Spring,你可很简单地看到类的 JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。Spring 能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。Spring 被设计为让使用它创建的应用尽可能少的依赖于他的 APIs。在 Spring 应用中的大多数业务对象没有依赖于 Spring。使用 Spring 构建的应用程序易于单元测试。Spri
6、ng 能使 EJB 的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用 POJOs 或localEJBs 来实现业务接口,却不会影响调用代码。Spring 帮助你解决许多问题而无需使用 EJB。Spring 能提供一种 EJB 的替换物,它们适于许多 web 应用。例如,Spring 能使用 AOP 提供声明性事务而不通过使用 EJB 容器,如果你仅仅需要与单个的数据库打交道,甚至不需要 JTA 实现。Spring 为数据存取提供了一致的框架,不论是使用 JDBC 或 O/Rmapping 产品(如Hibernate)。Spring 确实使你能通过最简单可行的解决办法解决你的问题。这
7、些特性是有很大价值的。Spring 能做什么?Spring 提供许多功能,在此我将快速地依次展示其各个主要方面。任务描述:首先,让我们明确 Spring 范围。尽管 Spring 覆盖了许多方面,但我们已经有清楚的概念,它什么应该涉及和什么不应该涉及。Spring 的主要目的是使 JavaEE 易用和促进好编程习惯。Spring 不重新开发已有的东西。因此,在 Spring 中你将发现没有日志记录的包,没有连接池,没有分布事务调度。这些均有开源项目提供(例如 CommonsLogging 用来做所有的日志输出,或CommonsDBCP 用来作数据连接池),或由你的应用程序服务器提供。因为同样的
8、的原因,我们没有提供 O/Rmapping 层,对此,已有有好的解决办法如 Hibernate 和 JDO。Spring 的目标是使已存在的技术更加易用。例如,尽管我们没有底层事务协调处理,但我们提供了一个抽象层覆盖了 JTA 或任何其他的事务策略。Spring 没有直接和其他的开源项目竞争,除非我们感到我们能提供新的一些东西。例如,象许多开发人员,我们从来没有为 Struts 高兴过,并且感到在 MVCwebframework 中还有改进的余地。在某些领域,例如轻量级的 IoC 容器和 AOP 框架,Spring 有直接的竞争,但是在这些领域还没有已经较为流行的解决方案。(Spring 在这
9、些区域是开路先锋。)Spring 也得益于内在的一致性。所有的开发者都在唱同样的的赞歌,基础想法依然是 ExpertOne-on-OneJavaEE 设计与开发的那些。并且我们已经能够使用一些主要的概念,例如倒置控制,来处理多个领域。Spring 在应用服务器之间是可移植的。当然保证可移植性总是一次挑战,但是我们避免任何特定平台或非标准化,并且支持在WebLogic,Tomcat,Resin,JBoss,WebSphere 和其他的应用服务器上的用户。Spring 的核心即是个 IoC/DI 的容器,它可以帮程序设计人员完成组件之间的依赖关系注入,使得组件之间的依赖达到最小,进而提高组件的重用
10、性,Spring 是个低侵入性(invasive)的框架,Spring 中的组件并不会意识到它正置身于 Spring 中,这使得组件可以轻易的从框架中脱离,而几乎不用任何的修改,反过来说,组件也可以简单的方式加入至框架中,使得组件甚至框架的整合变得容易。Spring 最为人重视的另一方面是支持 AOP(Aspect-OrientedProgramming),然而 AOP 框架只是Spring 支持的一个子框架,说 Spring 框架是 AOP 框架并不是一件适当的描述,人们对于新奇的 AOP关注映射至 Spring 上,使得人们对于 Spring 的关注集中在它的 AOP 框架上,虽然有所误解
11、,但也突显了 Spring 的另一个令人关注的特色。Spring 也提供 MVCWeb 框架的解决方案,但您也可以将自己所熟悉的 MVCWeb 框架与Spring 解合, 像是 Struts、 Webwork 等等, 都可以与 Spring 整合而成为进用于自己的解泱;方案。 Spring也提供其它方面的整合,像是持久层的整合如 JDBC、O/RMapping 工具(Hibernate、iBATIS)、事务处理等等,Spring 作了对多方面整合的努力,故说 Spring 是个全方位的应用程序框架。HibernateHibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了
12、轻量级的对象封装,使得 Java 程序员可以使用对象编程思维来操纵数据库。Hibernate 可以在应用 EJB 的 JavaEE架构中取代 CMP,完成数据持久化。它还可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序实用,也可以在 Servlet/JSP 的 Web 应用中使用Hibernate 的工作方式Hibernate 不会对您造成妨碍,也不会强迫您修改对象的行为方式。它们不需要实现任何不可思议的接口以便能够持续存在。,ft 一需要做的就是创建一份 XML“映射文档”,告诉Hibernate 您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后
13、就可以要求它以对象的形式获取数据,或者把对象保存为数据。与其他解决方案相比,它几乎已经很完美了。由于本文只是一篇介绍性的文章,所以不会引入构建和使用 Hibernate 映射文档的具体例子(我在Hibernate:ADevelopersNotebook一书的头几章中已经介绍了一个例子)。此外,在网上和 Hibernate 的在线文档中,还可以找到一些不错的例子,请参见下面的其他信息”部分。 它实际上相当直观。 应用程序对象中的属性以一种简单而自然的方式与正确的数据库结构相关联。运行时,Hibernate 读取映射文档,然后动态构建 Java 类,以便管理数据库与 Java 之间的转换。在Hib
14、ernate 中有一个简单而直观的 API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉 Hibernate 保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉 Hibernate 有关它们的信息,这样就能在数据库中保存它们。HibernateAPI 学习起来很简单,而且它与程序流的交互相当自然。在适当的位置调用它,就可以达成目的。它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还可以获得另一个好处,即代码不用关心要使用的数据库种类(否则的话甚至必须知道)。我所在的公司就曾有过在开发过程后
15、期被迫更换数据库厂商的经历。这会造成巨大的灾难,但是借助于 Hibernate,只需要简单地修改 Hibernate 配置文件即可。这里的讨论假定您已经通过创建 Hibernate 映射文档,建立了一个关系数据库,并且拥有要映射的 Java 类。有一个 Hibernate 工具集”可在编译时使用,以支持不同的工作流。例如,如果您已经拥有 Java 类和映射文档,Hibernate 可以为您创建(或更新)必需的数据库表。或者,仅仅从映射文档开始,Hibernate 也能够生成数据类。或者,它可以反向设计您的数据库和类,从而拟定映射文档。还有一些用于 Eclipse 的 alpha 插件,它们可以
16、在 IDE 中提供智能的编辑支持以及对这些工具的图形访问。使用 Hibernate 的场合既然 Hibernate 看起来如此灵活好用, 为什么还要使用其他的工具呢?下面有一些场景, 可以帮助您做出判断(或许通过提供一些比较和上下文,可以有助于鉴别非常适用 Hibernate的场合)。如果应用对于数据百的需要十分简单一一例如,您只想管理一组用户优先选择一一您根本不需要数据库,更不用说一个优秀的对象-关系映射系统了(即使它也如 Hibernate 这般易于使用)!从 Java1.4开始,有一个标准的 JavaPreferencesAPI 可以很好地发挥这个作用。对于熟悉使用关系数据库和了解如何执
17、行完美的 SQL 查询与企业数据库交互的人来说,Hibernate 似乎有些碍手碍脚,这就像带有动力和自动排挡的快艇车会使注重性能的赛车驾驶员不耐烦一样。如果您属于这种人,如果您所在的项目团队拥有一个强大的 DBA,或者有一些在址过程要处理,您可能想研究一下 iBATISoHibernate 的创建者本身就把 iBATIS当作是另一种有趣的选择。 我对它很有兴趣, 因为我们曾为一个电子商务站点开发了一个类似的系统 (其功能更为强大),而且从那时到现在,我们已经在其他环境中使用过它,尽管在发现 Hibernate 之后,在新项目中我们通常更喜欢使用 Hibernateo您可以认为,以 SQL为中
18、心的解决方案(比如 iBATIS)是反向的对象/关系映射工具,而 Hibernate 是一个更为传统的 ORM。当然,还有其他的外部原因会导致采用另外的方法。比如,在一个企业环境中,必须使用成熟的 EJB架构(或者其他的一些非普通对象映射系统)。可以为提供自己的数据存储工具的平台量身定做代码,比如 MacOSXsCoreData。使用的可能是像 XMLDTD 这样的存储规范,而它根本不涉及关系数据库。但是,如果您使用的是富对象模型,而且想要灵活、轻松且高效地保存它(无论您是否正要开始或已经决定使用关系数据库,只要这是一个选择一一而且存在可用的优秀免费数据库,比如 MySQL,或可嵌入 Java
19、 的 HSQLDB,它就应该始终是一个选择),那么 Hibernate 很可能就是您理想的选择。您可能会惊讶于节省的时间之多,以及您将会多么地喜欢使用它。Swing图形用户接口(GUI)库最初的设计目的是让程序员构建一个通用的 GUI,使其在所有的平台上都能够正常的显示。但是比较遗憾的是 AWT 产生的是在各系统看来都同样欠佳的图形用户接口,JAVA1.2 为老的 java1.0AWT 添加了 Java 基础类(JFC),这是一个被称为“Swing 的 GUI 的一部分。Swing 是第二代 GUI 开发工具集,AWT 采用了与特定平台相关的实现,而绝大部分 Swing 组件却不是。Swing
20、 是构筑在 AWT 上层的一组 GUI 组件的集合,为了保证可移植性,它完全用 Java 语言编写,与 AWT 相比,Swing 提供了更完整的组件,引入了许多新的特性和能力。Swing 提供了更多的组件库,如:JTable,JTree,Jcombox。Swing 也增强了 AWT 中组件的功能。正是因为 Swing 具备了如此多的优势所以我们以后在开发中都使用 Swing。JComponent 类是 Swing 组件的基类,而 JComponent 继承自 Container 类,因此,所有的Swing 组件都是 AWT 的容器。Swing 采用了 MVC 设计模式。SpringFramew
21、orkJava 开源 J2EE 框架】Spring 是一个解决了许多在 J2EE 开发中常见的问题的强大框架。Spring 提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring 的架构基础是基于使用 JavaBean 属性的 InversionofControl 容器。然而,这仅仅是完整图景中的一部分:Spring 在使用 IoC 容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。Spring 提供了唯一的数据访问抽象,包括简单和有效率的 JDBC 框架,极大的改进了效率并且减少了可能的错误。Spring 的数据访问架构还集成了 Hibernate 和其他 O/Rmapping 解决方案。Spring 还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如 JTA 或者 JDBC 事务提供一个一致的编程模型。Spring 提供了一个用标准 Java 语言编写的 AOP 框架, 它给 POJOs 提供了声明式的事务管理和其他企业事务-如果你需要-还能实现你自己的 aspects。这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 边缘计算取证框架-洞察及研究
- 现金支付协议书
- 自媒体平台图书批发品牌建设-洞察及研究
- 产业链协同下的租赁业生态构建-洞察及研究
- 运动会志愿者工作职责与培训方案
- 跨界合作与竞争分析-洞察及研究
- 校园内防滑安全教育活动方案
- 绿色供应链风险防控-洞察及研究
- 屋顶防水工程施工技术规范
- 信息不对称对消费者创新行为的影响研究-洞察及研究
- 2025年广告设计师职业技能竞赛(省赛)参考试题(附答案)
- 美业服务能力提升培训课件
- 石材购销合同范本简单
- 基孔肯雅热科普宣传学习课件
- 数据结构(Java语言描述)(第2版)课件全套 张静 单元1-8 数据结构与算法 - 哈希表
- 2025年北京市专业技术人员公需科目培训答案
- 2025年北京市房屋租赁合同(自行成交版)模板
- 2025年幼儿园教师教育部门政策法规试题(含答案)
- 2025至2030年中国湖南省中等职业教育市场需求情况分析报告
- 眼科规培汇报总结
- 基孔肯雅热医疗机构门诊应急处置演练方案
评论
0/150
提交评论