关于三大框架(转)

本文详细介绍了Struts、Spring和Hibernate三大框架的基本概念、架构原理及核心功能。Struts主要用于MVC设计模式中的视图层;Spring则负责业务逻辑处理,提供依赖注入和面向切面编程支持;Hibernate专注于数据持久化到数据库。

转贴:个人觉得作者 总结的还不错,贴过来 提醒下自己  还须 努力啊

 

常听人提起三大框架,关于三大框架,我做了如下了解 :

     三大框架: Struts+Hibernate+Spring

 Java 三大框架主要用来做 WEN 应用。

 Struts 主要负责表示层的显示

 Spring 利用它的 IOC AOP 来处理控制业务(负责对数据库的操作)

 Hibernate 主要是数据持久化到数据库

   再用 jsp servlet 做网页开发的时候有个 web.xml 的映射文件,里面有一个 mapping 的标签就是用来做文件映射的。当你在浏览器上输入 URL 得知的时候,文件就会根据你写的名称对应到一个 JAVA 文件,根据 java 文件里编写的内容显示在浏览器上,就是一个网页。

         .Struts 框架: struts 是开源软件。使用 Struts 的目的是为了帮助我们减少在运用 MVC 设计模型来开发 Web 应用的时间。如果我们想混合使用 Servlets JSP 的优点来建立可扩展的应用, struts 是一个不错的选择。

    1 .流程:服务器启动后,根据 web.xml 加载 ActionServlet 读取 struts-config.xml 文件内容到内存。

    2 .架构: Struts Model View Controller 都提供了对应的组件。 ActionServlet ,这个类是 Struts 的核心控制器,负责拦截来自用户的请求。

        Model 部分:由 JavaBean 组成, ActionForm 用于封装用户的请求参数,封装成 ActionForm 对象,该对象被 ActionServlet 转发给 Action Action 根据 ActionFrom 里面的请求参数处理用户的请求。 JavaBean 则封装了底层的业务逻辑,包括数据库访问等。

View 部分:该部分采用 JSP 实现。 Struts 提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与 Model 的有效交互,并增加了现实功能。对应上图的 JSP 部分。

   Controller 组件: Controller 组件有两个部分组成——系统核心控制器,业务逻辑控制器。   系统核心控制器,对应上图的 ActionServlet 。该控制器由 Struts 框架提供,继承 HttpServlet 类,因此可以配置成标注的 Servlet 。该控制器负责拦截所有的 HTTP 请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用 Model 来完成处理。对应 Action 部分。

  二. Spring 框架

Spring 是一个解决了许多在 J2EE 开发中常见的的问题的强大框架。 Springle 提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类变成的好习惯。 Spring 的架构基础是基于使用 JavaBean 属性的 Inversion of Control 容器。然而 Spring 在使用 IoC 容器作为构建玩关注所有架构层层的完整解决方案方面是独一无二的。 Spring 提供了唯一的数据管理抽象包括简单和有效率的 JDBC 框架,极大的改进了效率并且减少了可能的错误。 Spring 的数据访问架构还集成了 Hibernate 和其他 O/R mapping 解决方案。

三. Hibernate 框架

Hibernate 是一个开源代码的对象关系映射框架,对 JDBC 惊醒了费城轻量级的的对象封装,使得 Java 程序员可以随心所欲的使用对象变成思维来操作数据库。 Hebernate 可以应用在任何使用 JDBC 的场合,既可以在 java 的客户端程序使用,也可以在 Servlet/JSP Web 应用中使用最具革命意义的事, Hibernate 可以在应用 EJB J2EE 架构中取代 CMP, 完成数据持久化的重任

Hibernate 的核心接口一共有 5 个,分别为 :Session SessionFactory Transaction Query Configuration 。这 5 个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。

1 Session 接口:负责执行被持久化对象的 CRUD 操作 (CRUD 的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。 ) 。但需要注意的是 Session 对象是非线程安全的。同时, Hibernate session 不同于 JSP 应用中的 HttpSession 。这里当使用 session 这个术语时,其实指的是 Hibernate 中的 session ,而以后会将 HttpSession 对象称为用户 session

2 SessionFactory 接口:负责初始化 Hibernate 。它充当数据存储源的代理,并负责创建 Session 对象。这里用到了工厂模式。需要注意的是 SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory

3 Configuration 接口:负责配置并启动 Hibernate ,创建 SessionFactory 对象。在 Hibernate 的启动的过程中, Configuration 类的实例首先定位映射文档位置、读取配置,然后创建 SessionFactory 对象。

4 Transaction 接口:负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。

5 Query Criteria 接口:负责执行各种数据库查询。它可以使用 HQL 语言或 SQL 语句两种表达方式。

框架说白了就是JAVA工作者多年以来总结出的一些开发标准。让我们可以以成功的经验模式来开发我们自已的系统,一般使用框架的好处是 ·在好的框架下,开发者只需要写一些必须的代码;他们不需要直接接触底层的API。 这一点很重要。 ·经过良好设计的框架可以为程序提供清晰的结构并且提高程序的内聚性。好清晰的结构使得其他人可以更容易加入项目。 ·一个容易使用的框架可以通过一些例子和文档为用户提供最佳实践。 ·采用成功的框架的代码比自己的代码容易测试 J2EE本身提供了一些框架。比如, Enterprise Java-Beans (EJB) container或者 Servlet engine 而这些框架一般在中小工程中我们都不会使用,会让我们把大量的时间浪费在开发框架上。 而现在比较流行开源框架,主要是struts,hibernate,spring等 比如struts是在原有mvc基础上实现在代码分离等功能,非常好用。 而hibernate可以把我们的关系型数据库换成我们在JAVA中的面像对像来使用。从而让我们在开发时不需要直接写SQL语句,比如database.getName();就可以直接把数据库中的用户名取出来。 Spring J2EE框架被大规模地运用到项目中,而项目总要负责这些框架以及自己业务代码的连接,使之真正融合到一起。Spring就是专注于这个问题的,它和Hibernate融合的很好。 这框架在一起并不冲突,所以现在最常用的框架就是 struts+hibernate+spring就像我们盖房子一样,先把框架搭好,我们在在上面写代码就很规范。 Struts框架介绍 : Struts只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的 Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。 Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实 现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。 就是说可将两者一起使用,达到将两者自身的特点进行互补。 spring 框架介绍 : 它关注的领域是其他许多流行的Framework未曾关注的。Spring要提供的是一种管理你的业务对象的方法。 Spring既是全面的又是模块化的。Spring有分层的体系结构,这意味着你能选择仅仅使用它任何一个独立的部分,而它的架构又是内部一致。 因此你能从你的学习中,得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。 它的设计从一开始就是要帮助你编写易于测试的代码。Spring是使用测试驱动开发的工程的理想框架Spring不会给你的工程添加对其他的框架依赖。Spring也许称得上是个一站式解决方案,提供了一个典型应用所需要的大部分基础架构。它还涉及到了其他framework没有考虑到的内容。 尽管它仅仅是一个从2003年2月才开始的开源项目,但Spring有深厚的历史根基。 Spring架构上的好处 在我们进入细节之前,让我们来看看Spring能够给工程带来的种种好处: Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,Spring致力于解决剩下的问题。 Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个 魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值