spring struts 实现的功能是一样的吗? 两者有什么区别

thanksfriend 2009-01-11 09:36:22
spring struts 实现的功能是一样的吗? 两者有什么区别
...全文
212 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwxlryf520 2009-04-06
  • 打赏
  • 举报
回复
顶下
sdjn1985 2009-01-22
  • 打赏
  • 举报
回复
学习学习...
ppbear0404 2009-01-21
  • 打赏
  • 举报
回复
学习了,感谢。
a1405 2009-01-18
  • 打赏
  • 举报
回复
宝马和奔驰有什么区别?
看你怎么看,我看都是车,看你怎么用,看你想干什么,然后在选择用什么
gs840120 2009-01-15
  • 打赏
  • 举报
回复
学习之
_Wanghui_ 2009-01-13
  • 打赏
  • 举报
回复
ls说得好
junny9985 2009-01-13
  • 打赏
  • 举报
回复
简单的说下 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不是负责业务层的,而是把系统中散落的“切面”集合在一起,集中管理,从而让我们程序员能有更多的精力去专注业务层的开发,加快软件的开发进度。
junny9985 2009-01-13
  • 打赏
  • 举报
回复
谁说srping 引用了struts?
这不胡扯嘛……
两个框架实现不同的功能……分工很明确的啊……
还有谁说spring负责业务层了?
spring负责业务层了 那还要程序员干嘛?
全自动生成得了。
作为程序员,希望大家说话严谨!
thanksfriend 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yjaqktpp 的回复:]
起初只用struts的时候可以理解它是基本MVC的一种很好的实现,单用struts也能作为框架开发web应用,必竟它包含全面了m-v-c的各个模块,
但后来,更多的被用于表示层即v,
spring可以说是一个容纳百川的大容器,它很好的融合了诸如struts,hibernate这样的框架使结构更加清楚,功能更加强大,
自此可以说struts的控制功能完全被spring所取代,这样SSH日异流行起来,struts(表示层)spring(控制层)hibernate(model层)。
[/Quote]

spring里面引用了struts ?
yjaqktpp 2009-01-12
  • 打赏
  • 举报
回复
起初只用struts的时候可以理解它是基本MVC的一种很好的实现,单用struts也能作为框架开发web应用,必竟它包含全面了m-v-c的各个模块,
但后来,更多的被用于表示层即v,
spring可以说是一个容纳百川的大容器,它很好的融合了诸如struts,hibernate这样的框架使结构更加清楚,功能更加强大,
自此可以说struts的控制功能完全被spring所取代,这样SSH日异流行起来,struts(表示层)spring(控制层)hibernate(model层)。
thanksfriend 2009-01-12
  • 打赏
  • 举报
回复
但是spring也可以用于界面管理的啊
MavenTalk 2009-01-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huanhuan_hyj 的回复:]
struts主要用于管理界面的请求
spring主要用于管理数据的访问
[/Quote]


两个不同的frame,不能相提并论
GkfSyser 2009-01-11
  • 打赏
  • 举报
回复
Spring使各种框架无缝地整合,struts使开发mvc结构的程序更快捷,他们都会使web程序更有条理,方便管理
ip_moon 2009-01-11
  • 打赏
  • 举报
回复
Spring和Struts都是近年来比较流行的框架,Struts主要用于表示层,Spring用于业务层,以及Hiberate主要用于持久层。
huanhuan_hyj 2009-01-11
  • 打赏
  • 举报
回复
struts主要用于管理界面的请求
spring主要用于管理数据的访问
临远 2009-01-11
  • 打赏
  • 举报
回复
struts是mvc
spring是ioc
框架说白了就是JAVA工作者多年以来总结出的一些开发标准。让我们可以以成功的经验模式来开发我们自已的系统,一般使用框架的好处是 ·在好的框架下,开发者只需要写一些必须的代码;他们不需要直接接触底层的API。 这一点很重要。 ·经过良好设计的框架可以为程序提供清晰的结构并且提高程序的内聚性。好清晰的结构使得其他人可以更容易加入项目。 ·一个容易使用的框架可以通过一些例子和文档为用户提供最佳实践。 ·采用成功的框架的代码比自己的代码容易测试 J2EE本身提供了一些框架。比如, Enterprise Java-Beans (EJB) container或者 Servlet engine 而这些框架一般在中小工程中我们都不会使用,会让我们把大量的时间浪费在开发框架上。 而现在比较流行开源框架,主要是struts,hibernate,spring等 比如struts是在原有mvc基础上实现在代码分离等功能,非常好用。 而hibernate可以把我们的关系型数据库转换成我们在JAVA中的面像对像来使用。从而让我们在开发时不需要直接写SQL语句,比如database.getName();就可以直接把数据库中的用户名取出来。 Spring J2EE框架被大规模地运用到项目中,而项目总要负责这些框架以及自己业务代码的连接,使之真正融合到一起。Spring就是专注于这个问题的,它和Hibernate融合的很好。 这三种框架在一起并不冲突,所以现在最常用的框架就是 struts+hibernate+spring就像我们盖房子一样,先把框架搭好,我们在在上面写代码就很规范。 Struts框架介绍 : Struts只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的 Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。 Spring是一个轻型容器(light-weight container),其核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)。在此基础之上,Spring提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实 现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其他流行的Web框架进行集成。 就是说可将两者一起使用,达到将两者自身的特点进行互补。 spring 框架介绍 : 它关注的领域是其他许多流行的Framework未曾关注的。Spring要提供的是一种管理你的业务对象的方法。 Spring既是全面的又是模块化的。Spring有分层的体系结构,这意味着你能选择仅仅使用它任何一个独立的部分,而它的架构又是内部一致。 因此你能从你的学习中,得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。 它的设计从一开始就是要帮助你编写易于测试的代码。Spring是使用测试驱动开发的工程的理想框架。 Spring不会给你的工程添加对其他的框架依赖。Spring也许称得上是个一站式解决方案,提供了一个典型应用所需要的大部分基础架构。它还涉及到了其他framework没有考虑到的内容。 尽管它仅仅是一个从2003年2月才开始的开源项目,但Spring有深厚的历史根基。 Spring架构上的好处 在我们进入细节之前,让我们来看看Spring能够给工程带来的种种好处: Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,Spring致力于解决剩下的问题。 Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对象的程度。 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类要寻找的是哪个 魔法般的属性项或系统属性感到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧