共计 2994 个字符,预计需要花费 8 分钟才能阅读完成。
本篇内容主要讲解“Java Web 框架技术发展过程是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Java Web 框架技术发展过程是怎样的”吧!
一、Java Web 框架技术的概念
所谓的 Java 框架,简单理解是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文 (Context) 关系。Struts、Hibernate 和 Spring 是 Java 开发中的常用框架,他们分别针对不同的应用场景给出最合适的解决方案。
二、Java Web 框架技术发展过程
传统的 Java Web 应用程序是采用 JSP+Servlet+Javabean 来实现的,这种模式实现了最基本的 MVC 分层,使的程序结构分为几层,有负责前台展示的 JSP、负责流程逻辑控制的 Servlet 以及负责数据封装的 Javabean。但是这种结构仍然存在问题:如 JSP 页面中需要使用符号嵌入很多的 Java 代码,造成页面结构混乱,Servlet 和 Javabean 负责了大量的跳转和运算工作,耦合紧密,程序复用度低等等。
为了解决这些问题,出现了 Struts 框架,它是一个完美的 MVC 实现,它有一个中央控制类(一个 Servlet),针对不同的业务,需要一个 Action 类负责页面跳转和后台逻辑运算,一个或几个 JSP 页面负责数据的输入和输出显示,还有一个 Form 类负责传递 Action 和 JSP 中间的数据。JSP 中可以使用 Struts 框架提供的一组标签,就像使用 HTML 标签一样简单,但是可以完成非常复杂的逻辑。从此 JSP 页面中不需要出现一行包围的 Java 代码了。
可是所有的运算逻辑都放在 Struts 的 Action 里将使得 Action 类复用度低和逻辑混乱,所以通常人们会把整个 Web 应用程序分为三层,Struts 负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。
使用 JDBC 连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的 SQL 语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。
这时出现了 Hibernate 框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用 Hibernate 比 JDBC 方式减少了 80% 的编程量。
现在我们有三个层了,可是每层之间的调用是怎样的呢? 比如显示层的 Struts 需要调用一个业务类,就需要 new 一个业务类出来,然后使用; 业务层需要调用持久层的类,也需要 new 一个持久层类出来用。通过这种 new 的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。为此,出现 Spring 框架。Spring 的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过 xml 配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以 Spring 框架最核心的就是所谓的依赖注射和控制反转。
现在的结构是,Struts 负责显示层,Hibernate 负责持久层,Spring 负责中间的业务层,这个结构是目前国内最流行的 Java Web 应用程序架构了。另外,由于 Spring 使用的依赖注射以及 AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于 Spring 自己也实现了一个使用依赖注射的 MVC 框架,叫做 Spring MVC,同时为了很好的处理事物,Spring 集成了 Hibernate,使事物管理从 Hibernate 的持久层提升到了业务层,使用更加方便和强大。
三、当前流行的框架技术及发展趋势
除了上述中的 Struts、Hibernate 和 Spring 外,比较流行的就是 Spring MVC 框架。Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的 SpringMVC 框架或集成其他 MVC 开发框架,如 Struts1,Struts2 等。它是一个典型的教科书式的 mvc 构架,而不像 struts 等都是变种或者不是完全基于 mvc 系统的框架,对于初学者或者想了解 mvc 的人来说 spring 是最好的,它的实现是教科书式的,它和 tapestry 一样是一个纯正的 servlet 系统,这也是它和 tapestry 相比 struts 所具有的优势。而且框架本身有代码,看起来容易理解。
正在兴起的框架有 Jersey、springboot、play、Vue.js、jfinal 等。Jersey RESTful 框架是开源的 RESTful 框架, 实现了 JAX-RS (JSR 311 JSR 339) 规范。它扩展了 JAX-RS 参考实现,提供了更多的特性和工具,可以进一步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。与 Struts 类似,它同样可以和 hibernate,spring 框架整合。由于 Struts2+hibernate+spring 整合在市场的占有率太高,所以很少一部分人去关注 Jersey。所以网上有关于 Jersey 的介绍很少。但是它确实是一个非常不错的框架。对于请求式服务,对于 GET,DELETE 请求,你甚至只需要给出一个 URI 即可完成操作。
springboot 框架,被称作一栈式解决方案。比较轻量,也是当前微服务下的趋势;springboot 本身就是构建与 spring 之上,各种思想和特性无需多说,去掉了 spring 繁琐的配置,简化了原有 spring 开发的流程,提供了各种实用的特性如 metric,actuctor 等等;最重要的是 springboot 附带了整个 springcloud 生态。两个框架对你解决大,中,小项目都没任何问题。
play 更加偏向于 scala,本身轻量性能高,随着逐步的优化易用性以及扩展性都变得越来越好。
JFinal 是基于 Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时再拥有 ruby、python 等动态语言的开发效率。
到此,相信大家对“Java Web 框架技术发展过程是怎样的”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!