当我们说Java Web框架时,最流行的两个名字是Spring和Struts。由于Java语言缺乏内部组织,Spring和Struts都提供了一个Web开发框架,允许用户专注于开发可靠的Web应用程序。
什么是 Spring 框架?
Spring 框架(Spring)是一个开源应用程序框架,通过提供基础设施支持来支持Java应用程序的开发。Spring 是使用最广泛的Java企业版 (Java EE) 框架之一,它允许开发人员使用普通的旧Java对象 (POJO) 设计高性能应用程序。
Spring被认为是一个安全、灵活、低成本的框架。由于Spring是轻量级的,因此可以有效地利用系统资源。它提高了编码效率并减少了整体应用程序开发时间。
它支持各种框架,包括Struts、Tapestry、Hibernate、EJB、JSF等。在更大的意义上,该框架可以被视为一种结构,我们可以在其中发现各种技术难题的解决方案。Spring框架中有几个模块,如IOC、DAO、AOP、ORM、Context、WEB MVC等。
什么是Struts框架?
Struts框架是一个开源Web应用程序框架,用于轻松快速地开发Java企业版 Web 应用程序。
Struts通过利用和扩展Java Servlet API来促进模型-视图-控制器 (MVC) 架构。
Struts框架的目标是将“模型”(与数据库通信的应用程序逻辑)与“视图”(呈现给客户端/用户的HTML页面)和“控制器”分开,这是在模型和客户端视图之间传递数据的实例。
Struts已经包含控制器,它只是一个名为ActionServlet的Java servlet,它生成视图模板。Web应用程序程序员接下来必须编写模型代码,并通过扩展编写连接模型、视图和控制器的“struts-config.xml”中央配置文件。
Spring与Strut重要的关键差异
spring 与struts MVC之间最显着的区别是面向方面编程(AOP)和面向对象编程之间的区别。Spring使用依赖注入,这使得应用程序松散链接。IoC容器位于 Spring框架的核心。
OOP可以做AOP可以做的所有事情,但方式不同。换句话说,AOP通过对程序结构提供不同的视角来补充OOP。有时你需要对多个文件进行相同的修改。使用Struts将相同的代码添加到数百个文件应该是乏味的。同时,Spring在其他地方写入新的更改并将它们注入到文件中。
现在,让我们看看重要的关键区别——Spring与Struts:
1.Spring框架被描述为非侵入性的,这意味着它不会强制开发人员实现或修改由 spring API定义的类或接口。另一方面,Struts具有侵入性,因为它迫使开发人员扩展由struts API提供的基类。
2.Spring框架之所以受欢迎,主要是因为它具有各种优点,例如消息传递支持、事务管理以及与其他框架的连接。同时,Struts框架因其对业界广泛使用的标签库的强大支持以及与各种客户端技术的简单结合而广受欢迎。这是在Spring与 Struts中需要考虑的重要事项。
3.Spring具有独立的层,使与其他框架的接口变得简单,而Struts使其更复杂。
Spring支持 Velocity、JSP、Excel、Free Maker 和 PDF 用于查看组件。同时,只有JSP才能查看Struts中的组件。
4.尽管Spring MVC支持基本的HTML表单标记,但struts提供了大量替代 JSF 样式的复合和复杂标记。
5.Spring MVC 中提供了更多处理程序映射。在Struts中使用动作映射而不是特定的处理程序映射。
6.在Spring与Struts中,中间件服务很重要。Spring包括了日志、事务、连接池等中间件服务。相比之下,Struts没有内置中间件服务。
7.容器是通过激活类在Sprin中提供的。另一方面,Struts通过显式配置类来提供容器。
8.spring清除MVC(模型、视图和控制器)之间的模块划分。另一方面,控制器和模型混合在支柱中。
9.Spring MVC代码更容易测试。与Spring相比,Strut代码的可测试性较差。
总结
我们已经讨论了有关spring与struts的所有重要细节。两者都是用于开发Web 应用程序的优秀Java框架。你可以根据需求为你的项目选择最佳框架。希望现在你对Spring与Struts有一个清晰的概念,你将根据需要选择更好的Java Web框架。