欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

sprng和struts有什么区别?

程序员文章站 2024-03-05 11:41:42
spring: 1)开源框架 2)ioc(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合 3)aop 将安全,事务等于程序逻辑相对独立的...

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不是负责业务层的,而是把系统中散落的“切面”集合在一起,集中管理,从而让我们程序员能有更多的精力去专注业务层的开发,加快软件的开发进度。

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