在我们的系统设计过程中,一般都会采用分层设计的思想,即把一个系统划分为WEB层(主要是对Struts的应用)
业务层(Manager接口的应用)和持久层(DAO接口的应用)。这样的设计思想可以很好的业务流程控制,数据持久化
操作加以分离,从而提高了系统的扩展性,使系统的耦合度大大的降低!
1、关于耦合度。
所谓耦合度,按照本人的理解也就是指程序之间的关联程度。例如A类的运行必须由B类来支持,也就是说A类为了完成
一定的功能必须调用B类,那么A和B之间就存在了一定的关联,在程序设计中我们把这种关系叫做耦合。而在传统的软件
设计中降低程序之间耦合度是一个很重要思想。基于这种思想原则,我们在WEB系统设计中把数据库的访问操作(持久化)
和系统的业务流程控制中分离出来,这样就可以极大的降低了系统的耦合度,提高了程序的可移植性。例如把我们原本运行
在基于MySql数据系统的程序移植到Oracle数据库下。如果把数据库访问操作全部代码写到业务流程控制中(如在Struts的Action
中直接使用JDBC访问数据库)那么我们移植后的修改工作将会十分复杂,并且苦难特别大,尤其当我们在多个模块中采用了上述的
方式,那么这样的工作是多么的令人厌烦和恐惧啊。如果我们把数据库访问的操作放到一个专门的类中去完成,而在我们的WEB前台
流程控制中只是简单的调用这个类的方法,那么当我们的系统需要移植时候我们就可以简单的修改一下数据访问操作层的代码即可。
这样一方面另我们的工作大大的简化,另一方面使我们的代码更加优雅!
2,关于持久层
持久层是一个很大概念,并不是能够用三言两语就可以解释的很透彻的概念。针对我们上面的例子,我们所设计的那个专门用来访问
底层数据库系统的类就可以简单认为它是持久层上的一个类。它的主要任务就是把系统内的数据根据需要存储到数据库系统中,从而使得
数据可以持久的存储到数据库中从而实现数据的持久化过程。总而言之,持久层中的类主要是用来访问底层数据库系统,并允许其他程序
调用自己,从而实现对数据库的增,删,改,查的相关操作。总之持久层中的类大多都是工具类,主要作用是用来被别人调用的!
3、接口的应用
在实际的项目过程中,我们经常要进行面向接口编程,当然这种思想比较复杂,个人体会是面向接口编程一个比较突出的特点是利用接口
我们可以极大的提高程序的灵活度和可扩展性。首先接口定义了一套规则,一套与外部程序进行通信的规则,在WEB开发中的Servlet就极大
的发挥了接口的特性。针对上面提到的用例中,为了更好的在系统中进行分层,我们设计多个DAO接口,比如在一个电子商务系统中,既有用户注册登陆模块,又具
有产品查询等相关模块,而每一个模块都几乎不可避免的要对数据库进行相关的操作,如果只用一个DAO类来实现所有的这些功能是不可能的,
因此我们需要设计多个DAO接口。而每一个接口的实现类可以有多个,这样做的好处在于当我们需要对系统进行升级的时候,我们只需要在业务层改变相关的
传入的实现类即可(比如DAO的实现类可以有利用JDBC技术的来实现的,也有利用Hibernet的实现类,还有利用ibatis的),而在我们设计业务实现代码的过程
中可以充分的利用接口的特性来构造我们的代码,我们在业务层中只需关心我们调用的是否是一个DAO类(或Manager类)而不需要关心我们所接受的DAO类到底是
什么类型的,这样就很好的体现了面向对象思想中的多态的特性展示。从而提高了程序的灵活度和可扩展性。
4,关于Manager类的一些看法。
有人会问:既然DAO的设计已经实现了把分层设计的思想,那么为什么还要设计一个Manager类呢,Manager类的功能到底是什么?我个人的理解是,在
我们的系统中,业务逻辑控制层可以分为前台和后台两个层面,前台程序(比如Struts中的Action类)最好只负责与WEB相关的逻辑控制,它的主要
主要是面对用户的,用来对用户相关操作进行响应,而对于后台程序(比如利用Log4j技术来写入系统日志等)主要是针对开发人员的,我们可以利用
后台程序运行的结果来获取相关信息,这一层面属于后台业务层面。这样我们设计了Manager类,利用它来调用DAO类从而间接的对数据库进行访问,并且
实现了后台的业务控制。而在应用中我们最好也按照设计DAO类的思想来利用接口设计我们的Manager类,从而细化我们我的系统,提高程序的灵活性。
5,Factory类的设计思想。
既然我们的WEB层在运行过程中要调用Manager类和DAO类来实现对数据库系统的访问,那么当我们对系统进行升级和扩展后,那么我们不可避免的要对WEB层的
代码进行改造,这看起来似乎很简单,但当我们的系统毅然庞大时,即使很小的一些改动也是让人畏惧的,并且很有可能引发系统问题。在这样的需求下
我们设计出一个Factory类实现对Manager的“组装”。而在WEB层的调用中直接利用Factory类来获得Manager类来进行操作。Factory类的思想精髓在于利用反射机制
得到相关的类,并把所得到的类进行组装后返回给WEB层,而我们的需要反射进来的类的名字只需写在一个配置文件中即可。这样我们就可以实现不修改源代码,只修改
配置文件即可实现对系统的改变(关于Factory类的具体代码,可以参考Spring的ClassPathXmlApplicationContext的源代码,或者向传智播客的张孝翔老师请教,同时
我们在自行设计Factory时尽量的要把此类做为单例模式,把相关的方法设计成静态的方法从而节省内存空间。
6,Spring的Factory.
Spring是一个功能极其强大的框架,而它的核心类就是一个工厂类,利用它我们可以简化开发人员对工厂类设计。所谓框架,就是一个实现了某个功能的工具系统,
当然它只是一个半成品,我们可以手动的对它进行添加来实现我们的功能(比如Strust就是一个很好的实现了MVC模式的框加,而不严格的说TOMCAT也可以看作是一个
框加)。Spring提供了众多的工厂类,而它们都是ApplicationContext接口的实现类。只是这些工厂类所读取的文件只是XML文件。因此我们利用Spring的工厂类,关键是
对XML文件的配置。
7,Ibatis的简介。
为了实现数据的持久化操作,我们的应用程序必须与底层数据库系统进行交互,一个比较古老但”万金油“的办法是利用JDBC技术(Spring也提供JdbcTemplate来简化我们的
工作),而在面向对象的思想中,我们面对的都是数据都是一个一个的对象,而数据库内存储的是一张张的数据表,当我们访问数据库时需要把一个程序中的一个个的对象
转化成数据库可识别的数据,或者把从数据库中得到的数据封状成一个个的对象,并把这些对象返回给调用程序。而Hibernet,ibates等框架正好提供了这样的操作,可以把
对象到数据库的转化通过框架自动完成,从而避免了在程序中手动转化,而这种技术我们统称为ORM(Object Relation Mapping)技术。Hibernet是一个全自动的框架,它的功能
异常强大,而Ibatis是一种半自动的ORM技术,但它却能完成一些特殊的功能。Ibatis的核心类是SqlMapClient类,它通过对配置文件(sql-map-config.xml)的读取来完成对数据的
操作,在我们的DAO中只需要调用SqlMapClient相关方法即可完成相关操作,而在JDBC技术中需要书写的Sql语句只需要在Ibatis可识别的XML文件中书写即可,从而实现了把SQL语句从
JAVA源代码中分离的效果。
---------------------------------->来源于网络,服务于网络。
分享到:
相关推荐
在IT行业中,Spring、Hibernate和Ibatis是三个非常重要的框架,它们各自在不同的领域发挥着重要作用。Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等功能;...
在IT行业中,Spring、Hibernate和iBatis是Java企业级应用开发中不可或缺的三大框架,它们各自专注于不同的领域,但可以协同工作以构建强大的数据驱动应用程序。本指南将围绕这三大框架,帮助初学者理解它们的核心...
Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...
本文主要讨论的是如何将Hessian RPC与RMI技术整合到Structs、Spring、Hibernate和Ibatis这四个关键的Java开发框架中,以构建一个高效、灵活的分布式应用程序。 1. **Hessian配置说明**: Hessian的配置通常涉及...
Struts1、Spring、Hibernate和iBatis是Java Web开发中的四大框架,它们共同构建了一个强大的后端架构,用于处理复杂的企业级应用。这个集成方案旨在优化开发流程,提高代码的可维护性和可扩展性。 Struts1是MVC...
【开发指南(spring,hibernate,ibatis,webwork)】 在软件开发领域,Spring、Hibernate、iBatis和WebWork是四个重要的框架,它们分别在不同的层面为开发者提供了便利。下面将对这些框架进行详细阐述。 1. **Spring...
Struts2、Hibernate、Spring和iBatis是Java开发中非常重要的四个框架,它们在企业级应用开发中占据着核心地位。以下是对这些框架的详细解释和相关知识点: 1. **Struts2**:Struts2是一个基于MVC(Model-View-...
Struts2、Spring、iBatis 和 Hibernate 是四个在 Java Web 开发中广泛使用的开源框架。这个项目将它们集成为一个整体,为初学者提供了一个学习和理解这些技术如何协同工作的实例。 **Struts2** 是一个基于 Model-...
《夏昕的3部开发手册》是一套针对Java开发者的重要参考资料,主要涵盖了三大热门框架——Hibernate、Ibatis和Spring的深度解析。这三者在Java企业级应用开发中扮演着核心角色,是构建高效、可扩展后端服务的基石。 ...
在软件开发领域,特别是Java企业级应用开发中,Spring框架和iBATIS(现已更名为MyBatis)是非常重要的两个技术组件。Spring作为一款全面的企业级应用解决方案,其核心功能包括依赖注入、面向切面编程以及容器管理等...
Spring MVC、Hibernate和iBatis是Java开发中常用的三大框架,它们在Web应用程序开发中各自承担着不同的职责。本教程将深入探讨这三个框架的核心概念、使用方法以及它们之间的协同工作。 **Spring MVC** 是Spring...
Struts2、Hibernate、Spring 和 iBatis 是四个在Java Web开发中广泛应用的开源框架,它们的整合常常被称为SSH(Struts2、Spring、Hibernate)或者SHiP(Struts2、Hibernate、iBatis、Spring)。这个"struts2+...
Spring还包含事务管理、数据访问集成(如JDBC、Hibernate、iBATIS)、服务层支持(如DAO和Service接口)、以及各种工具和模块,如Spring Boot、Spring Cloud等,极大地提高了开发效率和应用的可维护性。 **iBATIS**...
Struts、Spring和iBatis是Java开发中常用的三大开源框架,它们各自负责应用程序的不同层面,共同构建了一个灵活且强大的企业级应用开发解决方案。这里,我们深入探讨这三个框架以及它们如何协同工作。 **Struts框架...
标题中的"springmvc_hibernate_ibatis_jdbc"指的是一个整合了SpringMVC、Hibernate、iBatis和JDBC这四种关键技术的Java应用框架。这个框架旨在提供一个全面且强大的解决方案,便于开发人员进行Web应用程序的构建。 ...
本篇文章将深入探讨三个流行的Java框架:Spring、Hibernate和iBatis,它们都提供了对数据库操作的高效封装,使得开发人员能够更便捷地处理数据库事务。 首先,Spring框架以其强大的依赖注入和面向切面编程闻名,它...
Spring还包含了一个强大的数据访问集成层,支持多种持久化技术,包括JDBC、Hibernate和iBatis。 **iBatis框架**: iBatis是一个简单但功能强大的SQL映射框架,它将SQL语句与Java代码分离,使得数据库操作更加灵活和...
Struts、Spring和iBatis是Java开发中常用的三大开源框架,它们各自专注于应用程序的不同层次:Struts处理表现层逻辑,Spring提供全面的依赖注入和事务管理,而iBatis则负责数据访问层的工作。本教程集合了这三者的...
Spring是一个全面的Java企业应用开发框架,提供了依赖注入(DI)、面向切面编程(AOP)等核心功能,还有对各种数据库访问框架的支持,如JDBC、Hibernate、iBatis等。 3. **Spring整合iBatis的好处** - **解耦**: ...