`

为什么要用strust.hibernate.spring

    博客分类:
  • java
阅读更多
UI层:   借助struts实现

业务层:   借助SpringFramework进行业务组件的组装关联。

数据持久层: 借助Hibernate实现

域对象层   将所有域对象划分在一个层面

这样分层的原因是什么呢?

这个框架都是经过实践和考验的而且使用的人也很多。质量和性能都有保障这与自己写的代码相比。一定是这样比较好。而且利用这些框架可以进行快速开发。

层与层之间松藕合,增加代码可得用率。而且分开明确,便于开发。

1.1. UI层
UI 是User Interface的缩写,这一层是面向用户的界面,是用户与系统之间交互的媒介。如,用户在界面发送请求,系统接收请求,进行处理,然后通过界面将结果呈现于用户。这一过程包括了用户动作、数据传递、界面显示。大家熟悉的MVC模式就是将这三者分离,减少三者耦合。

我们在该层借助了Struts来实现:

·         用ActionForm类封装与用户互动的数据元素。

·         用Action类实现业务逻辑、动作处理、链接转向。实现MVC中的C

·         借助Struts标签来完成数据呈现。实现MVC中的V。

1.2. 业务层
在实际的项目开发中,每个领域都会有自己独特的业务逻辑,正因为这样,致使项目中代码高度耦合,原本有可能被重用的代码或功能,因为与具体的业务逻辑绑定在一块而导致很难被重用。因此我们将实现这些具体逻辑的代码抽取出来分为单独的一层,其目的是希望通过层,来降低它与系统其他部分的耦合度。

现实中世界是变化的,既然该层实现的是现实中具体的业务逻辑,那该层的实现代码不可避免的会发生变更。怎样让该层适应最大的变化,做到最小的改动?通常我们在编码的时候会尽量考虑到同一业务多种实现的兼容和可扩展的能力。因此我们在该层借助了Spring,通过依赖注入、AOP应用、面向接口编程,来降低业务组件之间的耦合度,增强系统扩展性。

1.3. 数据持久层
开发中与数据库进行数据交互必不可少,通常我们归为CRUD(添加、读取、修改、删除),这些操作占据了系统开发中大部分的时间,同时我们还需要考虑与数据库交互的性能问题,如连接池、数据缓存等等。因此该层实现我们借助了Hibernate。

Hibernate 是一个ORM工具,它不仅仅是实现了数据库访问性能优化和与数据库交互的常用操作(CRUD),还将数据表与对象进行了关联,让我们可以脱离数据表,而直接针对对象来与数据库交互,我们不再需要用字符串去描述表中字段,不再需要一个个”+“号去组装Sql语句。这使得编码中可书写性提高。

1.4. 域对象层
该层应该说是ORM思想的产物,ORM用对象关联数据表,我们将这些对象的集合归为一个专门的层即Domain Layer。域对象是各层之间数据通信的载体。实际上域对象也是一个完完全全的业务对象,如User对象、Book对象。通过对业务的对象化,这有利于业务逻辑的重用。

Spring整合Hibernate的好处

刚刚做了一个实例。首先独立然后Hibernate开发。要做的是建立配制文件,然后生成SessionFactory.现在改成Spring来做。可以直接将DataSource注入至org.springframwork.orm.hibernate3.LocalSessionFactoryBean中,至于Hibernate所需的相关设定则可透过LocalSessionFactoryBean的相关属性来设定,像是设定数据库名称、使用者名称、密码等。LocalSessionFactoryBean会建立SessionFactory的实例,并在执行依赖注入时将这个实例设定给UserDao.

Spring还专门定义了一个HibernateTemplate封装了对数据库的增删改查。得到它的方法有两种

private HibernateTemplate hibernateTemplate;

public void setSessionFactory(SessionFactory sessionFactory){

    hibernateTemplate = new HibernateTemplate(sessionFactory);

}

这种方法是直接得到,Spring另处提供了另处一种更简单的方法

extends HibernateDaoSupport

这样在程序里面就可以通过HibernateDaoSupport的getHibernateTemplate得到HibernateTemplate实例了。





分享到:
评论
1 楼 neitnaco 2008-03-28  
框架说白了就是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属性。 Inversion of Control的使用(在下面讨论)帮助完成了这种简化。

通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。

Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。

使用Spring构建的应用程序易于单元测试。

Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。

Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。

Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。

相关推荐

    Spring+Strust+Hibernate论坛系统

    论坛系统(Spring+Strust+Hibernate) 论坛是个很常见的程序,各大网站都提供了论坛功能。但Java语言版成熟的论坛系统不是很多,本系统将使用 Spring+Strust+Hibernate实现一个基本功能的论坛。

    spring2.5+strust1+hibernate3.0JAR包集合

    总的来说,这个"spring2.5+struts1+hibernate3.0 JAR包集合"代表了一个成熟、广泛使用的Java Web开发解决方案,它整合了优秀的组件,为开发人员提供了强大的工具,以构建复杂、高性能的应用程序。然而,随着技术的...

    ssh 框架 实例 通过strust hibernate spring

    SSH框架,全称为Struts2、Hibernate和Spring的集成,是Java Web开发中常见的三大开源框架的组合。这个实例将详细介绍如何使用这三个框架构建一个完整的J2EE应用程序,实现系统的后端逻辑和数据管理。 首先,让我们...

    strust2.34.1+spring3.1.2+hibernate4.1.6 jar

    Struts2、Spring3.1.2和...总之,这个压缩包为学习和使用Struts2、Spring和Hibernate提供了一个基础环境,帮助开发者快速上手SSH框架的集成开发。通过深入研究和实践,开发者可以掌握企业级应用开发的关键技能。

    strust+hibernate+Spring的OA源码

    在SSH集成中,Spring通常作为整体架构的胶水,连接Struts和Hibernate,同时为其他服务如安全、邮件发送等提供支持。 4. **OA系统**: 办公自动化系统是一种用于企业管理、工作流程自动化、文档管理和协作的软件。...

    spring3+strust2+hibernate4

    这个名为"spring3+struts2+hibernate4"的项目,显然意在利用这三个框架的协同工作能力,构建一个高效、可维护的Web应用程序。 Spring框架是Java领域中最受欢迎的轻量级框架之一,它强调的是依赖注入(Dependency ...

    Spring3+Strust2+Hibernate+Maven

    Spring3、Struts2、Hibernate和Maven是Java开发中常用的四大框架,它们协同工作能够构建出高效、可维护的企业级应用。以下是对这四个组件的详细解释: **Spring3** 是一个全面的后端应用框架,核心特性包括依赖注入...

    J2EE面试题(包含了大部分的框架面试题如:hibernate Spring Strust 等)

    本资源主要关注的是J2EE相关的面试题目,特别是与三大主流框架——Hibernate、Spring和Struts紧密相关的部分。这些框架在现代企业级应用开发中占据了核心地位,理解并掌握它们是成为合格J2EE开发者的关键。 ...

    STRUST HIBERNATE SPRING OA项目实战

    《STRUST HIBERNATE SPRING OA项目实战》是一份专为初学者设计的实践教程,旨在通过实际操作的方式帮助学习者深入理解STRUTS、HIBERNATE和SPRING这三个核心Java EE技术的集成与应用。STRUTS作为经典的MVC框架,负责...

    spring-struts1-strust2-hibernate 核心包介绍

    这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 (2) spring-beans.jar 这个jar文件是所有应用...

    Struts + Spring + Hibernate

    Struts、Spring 和 Hibernate 是Java开发中非常著名的三个框架,它们常常被组合使用,形成了一个强大的企业级应用开发解决方案,通常被称为"SSH"或者"SSH2"。这三种框架各有侧重点,Struts负责表现层,Spring处理...

    Strust+spring+hibernate新闻发布系统

    【Struts+Spring+Hibernate新闻发布系统】是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序,尤其适用于新闻发布或内容管理系统。这个系统利用了三个强大的开源框架:Struts作为表现层框架...

    spring2.5+hibernate3+strust2整合

    总之,"spring2.5+hibernate3+strust2"的整合是Java Web开发中的经典组合,它代表了一种成熟、高效的开发模式,至今仍被广泛应用于许多企业级项目中。理解和掌握这一技术栈,对于提升Java Web开发技能具有重要意义。

    Spring+Hibernate+Strust 整合开发步骤

    在配置阶段,选择让Spring管理Hibernate的配置文件,即指定`applicationContext.xml`文件,并为SessionFactory指定一个ID。 6. **创建Hibernate实体类和映射文件** 编写与数据库表对应的Java实体类,并创建对应的...

    Struts,Hibernate,Spring集成开发宝典_strust代码.rar

    在"Struts,Hibernate,Spring集成开发宝典_strust代码.rar"这个压缩包中,我们可以看到三个主要的子目录:actionform、action和basic,这代表了Struts框架的核心组件。 1. **ActionForm**:在Struts框架中,...

    strust2.3Spring4Hibernate 4 libs

    strust2.3Spring4Hibernate 4 libs,测试可用。strust2.3Spring4Hibernate 4 libs,测试可用。strust2.3Spring4Hibernate 4 libs,测试可用。

    Spring3+Hibernate4+Strust2资源包及配置文件

    总之,这个"Spring3+Hibernate4+Strust2资源包及配置文件"为Java Web开发提供了一个基础的集成环境,使得开发者能够快速搭建并运行一个基于SSH的经典MVC架构应用。通过深入学习和实践这些框架的整合,开发者可以掌握...

    strust2+spring2.5+hibernate框架例题

    这个"strust2+spring2.5+hibernate框架例题"很可能是为了帮助开发者理解这三大框架的集成与协作。下面将详细介绍这三个框架及其集成使用。 Struts2是一个基于MVC设计模式的Web框架,主要用于处理HTTP请求并将其转发...

Global site tag (gtag.js) - Google Analytics