sprng和struts有什么区别?

 更新时间:2015年06月15日 10:31:29   投稿:hebedich  
Spring和Struts都是近年来比较流行的框架,Struts主要用于表示层,Spring用于业务层,以及Hiberate主要用于持久层,

spring:

1)开源框架

2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合

3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性

struts跟spring的区别?

structs:和ww2等一样,都是典型的mvc结构框架),structs偏重于表现层,它自己起一个控制器的作用即controller,它可以良好的把表现层与业务层分离开来。 spring:说白了就是一个大杂烩,提供了目前各种流行框架的集成,经典的有对hibernate的集成,此外,如mail,axis...各种都有。另外,它比较经典的就是IOC与AOP的功能。此外,它还提供了Spring MVC,它基于webflow。Spring是一系列web框架技术的综合,其特点是轻量级,非侵入性、解耦设计等。一般用的最多的是它的IoC/DI, 即反转控制/依赖注入,例如用xml声明Bean,运行时注入。

由于我不是很懂,所以理解不好。

简单的说下 struts spring hibernate 这3个主流的开源,业界事实上的标准框架吧!

在早期还没有struts的时候,我们前后台传递数据,都是用的作用域对象(page,request,session,application),包含大量的getParameter 和 getAttribute,以及数据类型的转换。浪费了很多的时间。而且有很多的开发都未使用mvc的模式,加大了后期的维护以及二次开发的难度。

在这个情况下,struts应运而生,他提供了 三大组件来供我们运用,前后台数据库传递使用actionform来传递,直接封装成对象。操作方便。而且,作为mvc的典型实现,视图和控制层的分离,代码更清晰,维护更方便。

早期做jdbc操作的时候,我相信大家都有这样的体会,自己编写数据库操作类,不断的传递数据库操作语句,不断的executeUpdate和executeQuery 然后又是循环读取结果集,然后关闭链接。而且数据库是关系型数据库,而java开发的时候,是对象模型的,关系-对象的转换,也让人很头疼。在企业开发中,最头疼的就是更换数据库,如果前期需求分析不到位的话,那就意味着项目就要重新来过的尴尬。

hibernate框架,提供了内置的方法,简单的save merge delete find 方法,就可以实现以前需要很多编码才能实现的功能,而且将值自动封装到javabean中,使用方便。而且我们也不必去关心,什么时候要开启数据库链接,什么时候去关闭数据库链接。而且hibernate也提供了数据库切换的功能,简单的配置即可,非常方便。也不必去编写繁冗的sql语句了。

至于spring,真的可以说是java开发人员的春天。Rod Johson在2002年编著的《Expert one to one J2EE design and development》一书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。【我的java老师当时和我上过:那时候,业界一直大喊:“不用ejb就是j2ee开发。而且ejb的开发繁冗不是一般人能理解的(注:只是引用,我未研究过ejb,所以不敢妄言!)”】

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。ioc也可以理解为依赖注入。就是讲程序之间的依赖性交给spring来管理,降低了程序之间的耦合度。在程序中,我们只需将某个对象以属性的方式注入到该对象中即可,无须实例话,实例化的事情交由spring来管理。至于要实现话那个对像,可以在配置文件里配置,当然,这些对象必须共同遵循某个规范(Interface)。aop面向切面编程,spring的声明式事务就是通过aop来实现嘚。在hibernate中如果要对方法加事务,我们需要关心,对谁加,在哪里加,而使用声明式事务以后,我们无须关系这些具体细节。一切交给spring来处理。

这三个框架具有的共同的特性就是:他们都是轻量级的,使用很灵活。

我在这里只是简单的说了点而已,其实有很多东西都值得我们去研究,而不是一两句话就可以概括的。

还要说明的就是:spring不是负责业务层的,而是把系统中散落的“切面”集合在一起,集中管理,从而让我们程序员能有更多的精力去专注业务层的开发,加快软件的开发进度。

以上所述就是本文的全部内容了,有需要的小伙伴可以参考下。

相关文章

  • Java多线程之Interrupt中断线程详解

    Java多线程之Interrupt中断线程详解

    Interrupt 的其作用是"中断"线程, 但实际上线程仍会继续运行, 这是一个非常容易混淆的概念. Interrupt 的真正作用是给线程对象设置一个中断标记, 并不会影响线程的正常运行,需要的朋友可以参考下
    2021-05-05
  • JAVA ArrayList详细介绍(示例)

    JAVA ArrayList详细介绍(示例)

    本文对JAVA ArrayList做了详细介绍,文中学到了ArrayList源码解析、ArrayList遍历方式、toArray()异常,最后给出了ArrayList示例。
    2013-11-11
  • SpringBoot项目中使用腾讯云发送短信的实现

    SpringBoot项目中使用腾讯云发送短信的实现

    本文主要介绍了SpringBoot项目中使用腾讯云发送短信的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • java反射机制Reflection详解

    java反射机制Reflection详解

    在本篇文章里小编给大家分享了关于java反射机制Reflection的相关知识点,需要的朋友们学习下。
    2019-04-04
  • 详解SpringCloud mysql实现配置中心

    详解SpringCloud mysql实现配置中心

    这篇文章主要介绍了详解SpringCloud mysql实现配置中心,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Java事务管理学习之JDBC详解

    Java事务管理学习之JDBC详解

    这篇文章主要介绍了Java事务管理学习之JDBC的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • spring后置通知@AfterReturning的使用

    spring后置通知@AfterReturning的使用

    这篇文章主要介绍了spring后置通知@AfterReturning的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java8新特性之方法引用的实践指南

    Java8新特性之方法引用的实践指南

    这篇文章主要给大家介绍了关于Java8新特性之方法引用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • SpringCloud如何创建一个服务提供者provider

    SpringCloud如何创建一个服务提供者provider

    这篇文章主要介绍了SpringCloud如何创建一个服务提供者provider,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Java定时任务的三种实现方法

    Java定时任务的三种实现方法

    在应用里经常都有用到在后台跑定时任务的需求。举个例子,比如需要在服务后台跑一个定时任务来进行垃圾回收
    2014-04-04

最新评论