zoukankan      html  css  js  c++  java
  • 软件体系结构之框架选择原因

    我选择的是SSH框架。

    选择的原因:

    SSH框架为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。

    Struts

               优点:首先他是开源的,使开发者可以更深了解他的原理和内部实现机制,   可扩展性

                      采用MVC模式分离业务逻辑层 显示层 模型层 低耦合,结构清晰,使开发者专注于业务逻辑

                      还有丰富的标签库供使用

                      支持国际化

                      还有很高的重用性

    Hibernate

              优点: 他是数据库连接的中间件,而且对程序的依赖性很小  透明性  使用了java的反射机制

                      轻量级  他对jdbc进行了轻量级的封装  而且可以在程序中取代EJB的cmp,完成持久化

                      性能很好,而且还是轻量级 很灵活

                      他支持多种数据库 的 1对多的复杂关系

                       可以完全使用面向对象的思想去编程

                      使用了JTA  JDBC 和  JNDI技术

    Spring

             优点:spring  是基于ioc(控制反转)和aop(面向切面编程) 的框架

                     而且封装了所有的事务,不需要程序员自己去提交事务,一切都由web容器去控制,省去了很多代码

                     spring采用了单态工厂模式       采用mvc模式下的java程序 尽管已经把层与层之间的关系耦合度降低,但还是有联系,        这时候使用spring 把所有bean都交由web容器去控制 创建和销毁,这样才真正的降低了耦合度, 而且bean的创建的生命周期都在web容器里控制,而且他从工厂里实例的bean都是单态的,当然可以加一个属性让他不是单态

                     面向接口编程,只需要知道要实现的接口就可以,不需要知道他的具体实现

                     使用spring框架有利于单元测试

    SSH框架说明:

                   集成SSH框架的系统从职责上分为四层:表示层业务逻辑层数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。 

                  系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。
    采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率

     

  • 相关阅读:
    cookie和session的区别和用法
    JavaScript深浅拷贝
    前端知识
    typescript -- ts
    vue笔记精华部分
    宜人贷项目里-----正则匹配input输入月份规则
    PHP-Socket-阻塞与非阻塞,同步与异步概念的理解
    PHP socket客户端长连接
    PHP exec/system启动windows应用程序,执行.bat批处理,执行cmd命令
    查看局域网内所有ip
  • 原文地址:https://www.cnblogs.com/twentytwo/p/5504280.html
Copyright © 2011-2022 走看看