`
可爱の小猪
  • 浏览: 107020 次
  • 性别: Icon_minigender_1
  • 来自: 南充
社区版块
存档分类
最新评论

JAVA SSH框架

阅读更多

JAVA SSH框架

JAVA SSH框架在Struts + Spring + Hibernate的组合框架模式中,三者各自的特点都是什么?

Struts 的MVC设计模式可以使我们的逻辑变得很清晰。

Spring 的IOC和AOP可以使我们的产品在最大限度上解藕。

hibernate的当然就是实体对象的持久化了

典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。

表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。

中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。

Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。

Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。

DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。

PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。

Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。

不可否认,对于简单的应用,采用ASP或者PHP的开发效率比采用J2EE框架的开发效率要高。甚至有人会觉得:这种分层的结构,比一般采用JSP + Servlet的系统开发效率还要低。

笔者从一下几个角度来阐述这个问题。

— 开发效率:软件工程是个特殊的行业,不同于传统的工业,例如电器、建筑及汽车等行业。这些行业的产品一旦开发出来,交付用户使用后将很少需要后续的维护。但软件行业不同,软件产品的后期运行维护是个巨大的工程,单纯从前期开发时间上考虑其开发效率是不理智的,也是不公平的。众所周知,对于传统的ASP和 PHP等脚本站点技术,将整个站点的业务逻辑和表现逻辑都混杂在ASP或PHP页面里,从而导致页面的可读性相当差,可维护性非常低。即使需要简单改变页面的按钮,也不得不打开页面文件,冒着破坏系统的风险。但采用严格分层J2EE架构,则可完全避免这个问题。对表现层的修改即使发生错误,也绝对不会将错误扩展到业务逻辑层,更不会影响持久层。因此,采用J2EE分层架构,即使前期的开发效率稍微低一点,但也是值得的。

— 需求的变更:以笔者多年的开发经验来看,很少有软件产品的需求从一开始就完全是固定的。客户对软件需求,是随着软件开发过程的深入,不断明晰起来的。因此,常常遇到软件开发到一定程度时,由于客户对软件需求发生了变化,使得软件的实现不得不随之改变。当软件实现需要改变时,是否可以尽可能多地保留软件的部分,尽可能少地改变软件的实现,从而满足客户需求的变更?答案是——采用优秀的解耦架构。这种架构就是J2EE的分层架构,在优秀的分层架构里,控制层依赖于业务逻辑层,但绝不与任何具体的业务逻辑组件耦合,只与接口耦合;同样,业务逻辑层依赖于DAO层,也不会与任何具体的DAO组件耦合,而是面向接口编程。采用这种方式的软件实现,即使软件的部分发生改变,其他部分也尽可能不要改变。

注意:即使在传统的硬件行业,也有大量的接口规范。例如PCI接口、显卡或者网卡,只要其遵守PCI的规范,就可以插入主板,与主板通信。至于这块卡内部的实现,不是主板所关心的,这也正是面向接口编程的好处。假如需要提高电脑的性能,需要更新显卡,只要更换另一块PCI接口的显卡,而不是将整台电脑抛弃。如果一台电脑不是采用各种接口组合在一起,而是做成整块,那将意味着即使只需要更新网卡,也要放弃整台电脑。同样,对于软件中的一个个组件,当一个组件需要重构时,尽量不会影响到其他组件。实际上,这是最理想的情况,即使采用目前最优秀的架构,也会有或多或少的影响,这也是软件工程需要努力提高的地方。

技术的更新,系统重构:软件行业的技术更新很快,虽然软件行业的发展不快,但小范围的技术更新特别快。一旦由于客观环境的变化,不得不更换技术时,如何保证系统的改变最小呢?答案还是选择优秀的架构。

在传统的Model 1的程序结构中,只要有一点小的需求发生改变,将意味着放弃整个页面。或者改写。虽然前期的开发速度快,除非可以保证以后永远不会改变应用的结构,否则不要采用Model 1的结构。

采用Hibernate作为持久层技术的最大的好处在于:可以完全以面向对象的方式进行系统分析、系统设计。

DAO模式需要为每个DAO组件编写DAO接口,同时至少提供一个实现类,根据不同需要,可能有多个实现类。用Spring容器代替DAO工厂

通常情况下,引入接口就不可避免需要引入工厂来负责DAO组件的生成。Spring实现了两种基本模式:单态模式和工厂模式。而使用Spring可以完全避免使用工厂模式,因为Spring就是个功能非常强大的工厂。因此,完全可以让Spring充当DAO工厂。

由Spring充当DAO工厂时,无须程序员自己实现工厂模式,只需要将DAO组件配置在Spring容器中,由ApplicationContext负责管理DAO组件的创建即可。借助于Spring提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用DAO实例。

优点:

Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。

除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

缺点:

Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。

Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。

分享到:
评论

相关推荐

    Java SSH 框架整合,学习源码

    Java SSH 框架整合是Java开发中常见的一项技术,主要涉及...总之,Java SSH框架整合是Java Web开发中的基础技能,掌握这一技能能帮助开发者更好地应对复杂的业务场景,并为后续学习更先进的开发技术打下坚实的基础。

    javaSSH框架javaSSH框架 整合

    JavaSSH框架,通常指的是在Java开发中用于构建服务器端应用的一种技术栈,它结合了Struts、Spring和Hibernate这三个主流的开源框架。Struts提供了MVC(Model-View-Controller)设计模式,Spring则是一个全面的后端...

    java ssh框架权限管理系统

    Java SSH框架权限管理系统是一款基于Java技术的,使用Struts、Spring和Hibernate三个开源框架整合开发的权限管理解决方案。SSH框架是Java Web开发中常见的“三位一体”框架,它们分别是Struts负责视图层,Spring处理...

    JAVA SSH框架最全包合集

    学习和使用这个包合集,开发者可以深入了解SSH框架的原理,掌握如何在实际项目中集成这三个框架,进行数据持久化、业务逻辑处理和用户界面展示。对于新手来说,这是一个很好的起点,能够快速提升开发技能并熟悉企业...

    java ssh 框架 jar包资源

    然而,随着技术的发展,Spring Boot的出现使得Java应用的初始化和配置变得更加简单,许多开发者倾向于使用Spring Boot替代传统的SSH框架组合。但无论如何,理解并熟练掌握SSH框架仍然是Java后端开发的重要技能之一。

    Java三大框架SSH框架

    Java SSH 框架是Java开发企业级应用的三...总的来说,Java SSH框架的集成使用,极大地提升了开发效率,降低了代码的复杂性,是学习和实践中非常重要的知识点。通过掌握SSH,开发者可以更好地理解和构建企业级Java应用。

    java SSH框架

    ### Java SSH框架详解 在Java Web开发领域,SSH框架(Struts + Spring + Hibernate)是一种广泛应用的集成解决方案,旨在提供一套高效、灵活且模块化的开发环境。本文将深入解析SSH框架的核心理念及其在典型J2EE三...

    基于java ssh框架设计网上商城设计的开题报告

    【基于Java SSH框架设计网上商城】的开题报告主要探讨了如何利用Java企业级开发中的Struts、Spring和Hibernate(SSH)三大主流框架构建一个网上购物系统。SSH框架的运用旨在提升系统的可扩展性、效率和安全性,以...

    Javassh框架

    JavaSSH框架,通常指的是Java实现的安全 Shell (SSH) 库,它允许开发者在Java应用程序中进行远程系统操作,如执行命令、传输文件等。SSH是一种网络协议,用于提供安全的远程登录和其他网络服务,比如SFTP(Secure ...

    javaSSH框架——学生学籍管理系统.pdf

    在"javaSSH框架——学生学籍管理系统"中,我们可以看到一个典型的SSH框架应用,主要用于实现学生学籍的管理。 一、设计目的 该设计旨在让学生通过实际操作加深对J2EE框架技术的理解,特别是在Struts2、Spring和...

    javaSSH框架的整合

    Java SSH框架指的是Struts、Spring和Hibernate这三个开源框架的组合,它们在Java Web开发中被广泛使用,提供了模型-视图-控制器(MVC)架构的支持。Struts处理请求和展示,Spring负责依赖注入和事务管理,而...

    oa办公源码java ssh框架带mysql数据库

    标题中的“oa办公源码java ssh框架带mysql数据库”揭示了这是一个基于Java技术栈和SSH框架(Struts1、Hibernate、Spring)构建的自动化办公(OA)系统的源代码,同时集成了MySQL数据库。这个系统旨在提供一个易于...

    基于java SSH框架的简单医疗管理系统.zip

    SSH框架在Java开发中是一种常见的技术栈,全称为Spring、Struts和Hibernate。这个"基于java SSH框架的简单医疗管理系统"项目,显然使用了这三个框架的集成,来构建一个用于管理医疗信息的系统。SSH框架因其高效、...

    Java SSH框架显示饼图和柱形图

    总结来说,这个项目展示了如何利用Java SSH框架结合JFreeChart库来实现动态生成和展示饼图和柱形图的功能,这对于数据分析和报表展示是非常实用的。通过这种方式,开发者可以为用户提供直观的数据可视化界面,从而...

    java SSH框架信贷系统

    这个“java SSH框架信贷系统”项目是基于这三个框架构建的一个信贷管理系统,主要目的是为了教学和学习。SSH框架的集成使得系统具有良好的分层架构、数据持久化能力和强大的MVC(模型-视图-控制器)支持。 Spring...

    基于Java ssh框架的网上商城项目

    【基于Java SSH框架的网上商城项目】是一个综合性的IT项目,它利用了Java企业级开发中的主流技术栈,包括Struts2、Spring和Hibernate,这也就是我们常说的SSH框架。SSH是一个强大的MVC(Model-View-Controller)架构...

    基于Java SSH框架、 easyui 开发的进销存管理系统

    【Java SSH框架】 Java SSH框架,全称Struts2+Spring+Hibernate,是Java后端开发中常用的MVC(Model-View-Controller)框架组合。Struts2作为控制层,负责处理请求并调用业务逻辑;Spring作为服务层,提供依赖注入...

    教师登记管理系统(JAVA SSH框架)

    【教师登记管理系统(JAVA SSH框架)】是一款专为学校设计的管理软件,旨在方便教师对教室的使用进行登记和管理。该系统采用JAVA语言作为主要开发语言,利用了Spring、Struts2和Hibernate三大框架(通常称为SSH框架...

    基于Java SSH框架开发的简单医疗管理系统设计源码

    本项目是一款基于Java SSH框架构建的简易医疗管理系统源码,涵盖349个文件,包括92个JavaScript脚本、88个GIF图片、42个Java源文件、38个PNG图片、36个CSS样式表、9个HTML文件、6个Markdown文档、6个XML配置文件、5...

Global site tag (gtag.js) - Google Analytics