Java 五大框架之间的比拟
副问题[/!--empirenews.page--]
Spring 及其利益 大部门项目都少不了spring的身影,为什么各人对他云云青睐,并且对他的追捧丝毫没有减退之势呢? Spring是什么: Spring是一个轻量级的DI和AOP容器框架。 说它轻量级有一大部门缘故起因是相对与EJB的(固然本人从没有打仗过EJB的应用),重要的是,Spring长短侵入式的,基于spring开拓的应用一样平常不依靠于spring的类。 DI:称作依靠注入(Dependency Injection),和节制反转一个观念,详细的讲,当一个脚色必要其它一个脚色帮忙的时辰,在传统的措施计划中,凡是有挪用者来建设被挪用者的实例。可是在spring中建设被挪用者将不再有挪用者完成,因此叫节制反转。建设被挪用工具有Spring来完成,在容器实例化工具的时辰主动的将被挪用者(可能说它的依靠工具)注入给挪用工具,因此又叫依靠注入。 AOP:Spring扑面向切面编程提供了强有力的支持,通过它让我们将营业逻辑从应用处事(如事宜打点)中疏散出来,实现了高内聚开拓,应用工具只存眷营业逻辑,不再认真其余体系题目(如日记、事宜等)。Spring支持用户自界说切面。 面向切面编程是面向工具编程的有力增补。面向工具编程将措施分成各个条理的工具,面向切面的措施将运行进程解析成各个切面。AOP是从运行措施的角度去思量措施的布局,提取营业处理赏罚进程的切面,OOP是静态的抽象,AOP是动态的抽象,是对应用执行进程的步调举办抽象,从而得到步调之间的逻辑分别。 容器:Spring是个容器,由于它包括而且打点应用工具的生命周期和设置。如工具的建设、烧毁、回调等。 框架:Spring作为一个框架,提供了一些基本成果,(如事宜打点,耐久层集成等),使开拓职员更专注于开拓应用逻辑。 看完了Spring是什么,再来看看Spring有哪些利益 1.行使Spring的IOC容器,将工具之间的依靠相关交给Spring,低落组件之间的耦合性,让我们更专注于应用逻辑 2.可以提供浩瀚处事,事宜打点,WS等。 3.AOP的很好支持,利便面向切面编程。 4.对主流的框架提供了很好的集成支持,如hibernate,Struts2,JPA等 5.Spring DI机制低落了营业工具替代的伟大性。 6.Spring属于低侵入,代码污染极低。 7.Spring的高度可开放性,并不逼迫依靠于Spring,开拓者可以自由选择Spring部门或所有 Struts2的利益 Struts2 是一个相等强盛的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于昔时的Webwork和XWork框架,担任其利益,同时做了相等的改造。Struts2此刻在Java Web开拓界的职位可以说是大红大紫,从开拓职员的角度来说明,Struts2之以是可以或许云云的深入开拓职员之心,与其精良的计划是分不开的。 1、Struts2基于MVC架构,框架布局清楚,开拓流程一览无余,开拓职员可以很好的掌控开拓的进程。 我在项目开拓进程中,一个详细的成果的开拓流程是:拿到一个详细的成果需求文档和计划好的前台界面(在开拓中我不认真计划页面),说明必要以前台转达哪些参数,确定参数的变量名称,在Action中配置响应的变量,这些参数在前台怎样表现,并将页面上的一些控件恰当行使Struts2提供的处事器端控件来取代,编写Action对应的要领来完成营业逻辑,最后,做一些与设置文件相干的配置。虽然现实的开拓比这个进程要伟大,涉及到数据库,验证,非常等处理赏罚。可是行使Struts2举办开拓,你的存眷点绝大部门是在怎样实现营业逻辑上,开拓进程异常清楚明白。 2、行使OGNL举办参数转达。 OGNL提供了在Struts2里会见各类浸染域中的数据的简朴方法,你可以利便的获取Request,Attribute,Application,Session,Parameters中的数据。大大简化了开拓职员在获取这些数据时的代码量。 3、强盛的拦截器 Struts2 的拦截器是一个Action级此外AOP,Struts2中的很多特征都是通过拦截器来实现的,譬喻非常处理赏罚,文件上传,验证等。拦截器是可设置与重用的,可以将一些通用的成果如:登录验证,权限验证等置于拦截器中以完成一些Java Web项目中较量通用的成果。在我实现的的一Web项目中,就是行使Struts2的拦截器来完成了体系中的权限验证成果。 4、易于测试 Struts2的Action都是简朴的POJO,这样可以利便的对Struts2的Action编写测试用例,大大利便了Java Web项目标测试。 5、易于扩展的插件机制 在Struts2添加扩展是一件舒畅而轻松的工作,只必要将所必要的Jar包放到WEB-INF/lib文件夹中,在struts.xml中作一些简朴的配置就可以实现扩展。常用的Struts2的扩展可以通过这个链接找到: http://cwiki.apache.org/S2PLUGINS/home.html 6、模块化 Struts2已经把模块化作为了系统架构中的根基头脑,可以通过三种要领来将应用措施模块化: 将设置信息拆分成多个文件 把自包括的应用模块建设为插件 建设新的框架特征,即将与特定应用无关的新成果组织成插件,以添加到多个应用中去。 7、全局功效与声明式非常 为应用措施添加全局的Result,和在设置文件中对非常举办处理赏罚,这样当处理赏罚进程中呈现指定非常时,可以跳转到特定页面,这一成果异常适用。 Spring MVC和Struts2的较量的利益 我们用struts2时回收的传统的设置文件的方法,并没有行使传说中的0设置。spring3 mvc可以以为已经100%零设置了(除了设置spring mvc-servlet.xml外)。 Spring MVC和Struts2的区别: 机制:spring mvc的进口是servlet,而struts2是filter(这里要指出,filter和servlet是差异的。早年以为filter是 servlet的一种非凡),这样就导致了二者的机制差异,这里就牵扯到servlet和filter的区别了。 机能:spring会轻微比struts快。spring mvc是基于要领的计划,而sturts是基于类,每次发一次哀求城市实例一个action,每个action城市被注入属性,而spring基于要领,粒度更细,但要警惕掌握像在servlet节制数据一样。spring3 mvc是要领级此外拦截,拦截到要领后按照参数上的注解,把request数据注入进去,在spring3 mvc中,一个要领对应一个request上下文。而struts2框架是类级此外拦截,每次来了哀求就建设一个Action,然后挪用setter getter要领把request中的数据注入;struts2现实上是通过setter getter要领与request打交道的;struts2中,一个Action工具对应一个request上下文。 参数转达:struts是在接管参数的时辰,可以用属性来接管参数,这就声名参数是让多个要领共享的。 计划头脑上:struts越发切合oop的编程头脑, spring就较量审慎,在servlet上扩展。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |