• 宏观认识 Spring, Struts, Hibernate三大框架


    一,基本概念:Spring/Struts/Hibernate 是干嘛用的?

    首先应该了解这三个框架是做什么的,在开发中具有什么样的作用,为什么要用,对于理清楚框架中的具体知识点是有大裨益的。

       1,Spring:   DI    /    AOP

       Spring 对应的关键词是DI(依赖注入) 与 AOP (面向切面编程),  可以认为是一个以DI 和 AOP 为核心 Java Web 一站式的集成 (粘合)框架;

            其中DI 也称为 IOC(控制反转) 用于管理 Java对象之间的依赖关系,AOP 用于解耦业务代码和公共服务代码(如日志,安全,事务等)。DI 和 AOP 能让代码更加简单,具有良好的松耦合特性和可测试性,极大的简化开发, 理解这两者是使用Spring 框架的基础。

              Spring框架对企业应用开发中的各类通用为题都进行了良好的抽象,因此也能够把应用各个层次所涉及的特定的功能和开发框架(如:MVC框架,ORM框架)方便的组合在一起(这样得益于依赖注入和面向切面编程带来的强大功能)。 Spring是一个极其优秀的一站式的Full-Stack集成框架,因此基于Spring核心,对Java应用开发中的各类通用问题几乎都提供了针对性的框架(比如:  Spring MVC, Spring Data)

             Java曾经有另外一个类似的一站式框架粘合框架Seam,  核心是基于依赖注入来粘合JSF 和 EJB, 不过退出时 Spring 已经大杀四方, Seam基本已经退出历史舞台,Seam 提过一个很不错的概念 :“双向注入”  , 类似在前端框架中的双向绑定, 当时来说还是很超前的。

         2,Strus: MVC

         Struts 是一个 Java Web MVC开发框架。

    • 模型Model用于封装与业务逻辑相关的数据和数据处理方法;
    • 视图View是数据的 HTML 展现;
    • 控制器Controller 负责相应请求,协调Model 和 VIew;

      Model,View 和 Controller 的分开, 是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,还使得 Web应用的配置性 和 灵活性更好;

     MVC开发模式下,Java Web 开发会遇到URL 路由, 模板渲染, 表单绑定/ 提交/ 验证, Session 封装, 权限验证, 国际化等一系列通用的问题, 而MVC 框架会将这些通用问题封装进框架中,在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就会帮助处理好一切,可以极大的简化代码; (“不要调用我,我会调用你。再扯远一点,这其实就是依赖注入(DI) / 控制反转(IoC)概念的最初来源, 去看见 Martin Fowler 的博客就知道了");

      3,Hibernate:  ORM

         Hibernate是一个Java ORM开发框架;ORM是Object Relation Mapping的缩写,顾名思义,即: 对象关系映射;

         ORM是一种以面向对象的方式来进行数据库操作的技术。Web开发中常用的语言,都会有对应的ORM框架。而Hibernate就是Java开发中的一种常用ORM框架,另一个现在流行的ORM框架就是Mybatis;

      为什么需要ORM框架?

      简单的理解:通过Java进行数据库访问的正常流程可以分为以下几步:

         1,准备好SQL语句; 

            2,调用JDBC的API传入SQL语句,设置参数;

         3,解析JDBC返回的结果;

           这个过程实际上非常繁琐, 比如:

         1,在Java代码中拼接SQL非常麻烦,而且容易出错;

            2,JDBC的代码调用有很多重复性的代码;

            3,从JDBC返回的结果转换成领域模型的Java对象很繁琐;

          而且使用ORM框架,则可以让我们用面向对象的方式来操作数据库,比如通过一个简单的函数调用就可以完成上面整个流程,直接返回映射为Java对象的结果。这个流程中很大一部分工作其实可以交给ORM自动化的帮我们执行。对,类似MVC框架,ORM框架会帮我们处理好相关的繁琐事情;

          

              

    待你足够优秀
  • 相关阅读:
    js画矩形
    js加载pdf截屏生成图片调用ocr识别成文字
    C#List或者Set集合相同的key合并Value的值
    Oracle学习笔记读懂执行计划(十八)
    Java 阻塞队列
    SpringMVC(三):参数绑定、输入输出转换
    springMVC(二): @RequestBody @ResponseBody 注解实现分析
    Spring Security 4.2.3 Filters 解析
    MySQL 加锁处理分析
    Innodb semi-consistent 简介
  • 原文地址:https://www.cnblogs.com/yongjin/p/10256219.html
Copyright © 2020-2023  润新知