前言:对于JAVA WEB端的程序员来说,对JAVA三大框架:Struts+Hibernate+Spring的了解必不可缺,下面详细谈谈 Java三大框架主要用来做WEN应用。
三大框架:Struts+Hibernate+Spring
Java 三大框架主要用来做WEN应用。
Struts 主要负责表示层的显示
Spring 利用它的 IOC 和 AOP 来处理控制业务(负责对数据库的操作)
Hibernate 主要是数据持久化到数据库
一 .Struts框架:struts是开源软件。
使用 Struts 的目的是为了帮助我们减少在运用 MVC 设计模型来开发 Web 应用的时间。如果我们想混合使用 Servlets 和 JSP 的优点来建立可扩展的应用, struts 是一个不错的选择。
1.流程:服务器启动后,根据 web.xml 加载 ActionServlet 读取 struts-config.xml 文件内容到内存。
2.架构: Struts对Model,View和Controller 都提供了对应的组件。A ctionServlet ,这个类是 Struts 的核心控制器,负责拦截来自用户的请求。
Model 部分:由 JavaBean 组成, ActionForm 用于封装用户的请求参数,封装成 ActionForm 对象,该对象被 ActionServlet 转发给 Action,Action 根据 ActionFrom 里面的请求参数处理用户的请求。 JavaBean 则封装了底层的业务逻辑,包括数据库访问等。
View 部分:该部分采用 JSP 实现。 Struts 提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与 Model 的有效交互,并增加了现实功能。对应上图的 JSP 部分。
Controller 组件: Controller 组件有两个部分组成——系统核心控制器,业务逻辑控制器。
(1) 系统核心控制器,对应上图的 ActionServlet 。该控制器由 Struts 框架提供,继承 HttpServlet 类,因此可以配置成标注的 Servlet 。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。
(2) 业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用 Model 来完成处理。对应 Action 部分。
二.Spring框架
Spring 是一个解决了许多在 J2EE 开发中常见的的问题的强大框架。 Spring 提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类变成的好习惯。 Spring 的架构基础是基于使用 JavaBean 属性的 Inversion of Control 容器。然而 Spring 在使用 IoC 容器作为构建玩关注所有架构层层的完整解决方案方面是独一无二的。 Spring 提供了唯一的数据管理抽象包括简单和有效率的 JDBC 框架,极大的改进了效率并且减少了可能的错误。 Spring 的数据访问架构还集成了 Hibernate 和其他 O/R mapping 解决方案。
三.Hibernate框架
Hibernate 是一个开源代码的对象关系映射框架,对 JDBC 惊醒了费城轻量级的的对象封装,使得Java程序员可以随心所欲的使用对象变成思维来操作数据库。 Hebernate 可以应用在任何使用 JDBC 的场合,既可以在 java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用最具革命意义的事 ,Hibernate 可以在应用EJB的J2EE架构中取代 CMP ,完成数据持久化的重任
Hibernate 的核心接口一共有5个,分别为: Session、SessionFactory、Transaction、Query 和 Configuration 。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
下面对这五个核心接口分别加以介绍:
1. Session接口 :负责执行被持久化对象的 CRUD 操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是 Session 对象是非线程安全的。同时, Hibernate 的 session 不同于 JSP 应用中的 HttpSession 。这里当使用 session 这个术语时,其实指的是 Hibernate 中的 session ,而以后会将 HttpSession 对象称为用户 session。
2. SessionFactory接口 :负责初始化 Hibernate 。它充当数据存储源的代理,并负责创建 Session 对象。这里用到了工厂模式。需要注意的是 SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory 。
3. Configuration接口 :负责配置并启动Hibernate,创建 SessionFactory 对象。在 Hibernate 的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建 SessionFactory 对象。
4. Transaction接口 :负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
5. Query和Criteria接口 :负责执行各种数据库查询。它可以使用 HQL 语言或 SQL 语句两种表达方式。
有位高手的形象比喻: Struts 是 web 开发框剪(负责表单提交)(相当于电脑显卡) Hibernate 负责对数据库的操作(相当于电脑CPU) Spring 相当于一个主板(将显卡和CPU组装在一起)
在学习的道路上应该勇往直前,不要害怕丢脸。不懂就是不懂,承认了又会怎么样呢?? 承认了就开始学呗~~~忘了就复习,这样才能成为真正的高手。