您现在的位置是:首页 >

springmvc帮你做了什么 springmvc和其他mvc框架的区别

火烧 2022-10-21 06:26:03 1052
ri gmvc和其他mvc框架的区别 ri gmvc和其他mvc框架的区别 ri g 是是一个开源框架,是为了解决企业应用程式开发,功能如下◆目的:解决企业应用开发的复杂性◆功能:使用基本的Java

springmvc和其他mvc框架的区别  

springmvc和其他mvc框架的区别

spring 是是一个开源框架,是为了解决企业应用程式开发,功能如下
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR档案里释出。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的物件不依赖于Spring的特定类。
◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个物件依赖的其它物件会通过被动的方式传递进来,而不是这个物件自己建立或者查询依赖物件。你可以认为IoC与JNDI相反——不是物件从容器中查询依赖,而是容器在物件初始化时不等物件请求就主动将依赖传递给它。
◆面向切面——Spring提供了面向切面程式设计的丰富支援,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用物件只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支援。
◆容器——Spring包含并管理应用物件的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被建立——基于一个可配置原型(prototype),你的bean可以建立一个单独的例项或者每次需要时都生成一个新的例项——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
◆框架——Spring可以将简单的元件配置、组合成为复杂的应用。在Spring中,应用物件被宣告式地组合,典型地是在一个XML档案里。Spring也提供了很多基础功能(事务管理、持久化框架整合等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的程式码。它们也为Spring中的各种模组提供了基础支援。
Spring的两大核心AOP与IOC,可以单独用于任何应用,包括与Struts等MVC框架与Hibernate等ORM框架的整合,目前很多公司所谓的轻量级开发就是用 Spring + Struts(2)+Hibernate。
Spring MVC就是一个MVC框架,个人觉得Spring MVC annotation式的开发比Struts2方便,可以直接代替上面的Struts(当然Struts的做为一个非常成熟的MVC,功能上感觉还是比Spring强一点,不过Spring MVC已经足够用了)。当然spring mvc的执行效率比struts高,是因为struts的值栈影响效率
spring mvc类似于struts的一个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为支撑才能跑起来
如果有人问你什么事控制反转(spring的核心面试常问道):你就回答,本来程式是由我们new 出来的嘛,后来交给程式控制进行new出来了嘛,这就是控制反转嘛,打了那么多手都麻了,看在我那么辛苦的份上给分吧

简单概括就是:spring 是一个开源框架,是为了解决企业应用程式发开发,spring mvc类似于struts的一个MVC开发框架,其实都是属于spring,spring mvc需要有spring的架包作为支撑才能跑起来。

springmvc和其他mvc框架有什么区别?

spring 是是一个开源框架,是为了解决企业应用程式开发;

目的:解决企业应用开发的复杂性;

功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能;

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR档案里释出。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的物件不依赖于Spring的特定类。

Spring MVC就是一个MVC框架,个人觉得Spring MVC annotation式的开发比Struts2方便,可以直接代替上面的Struts(当然Struts的做为一个非常成熟的MVC,功能上感觉还是比Spring强一点,不过Spring MVC已经足够用了)。当然spring mvc的执行效率比struts高,是因为struts的值栈影响效率。

spring mvc类似于struts的一个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为支撑才能跑起来。

mvvm框架是什么 它和其他框架的区别

在MVC里,View是可以直接访问Model的!从而,View里会包含Model资讯,不可避免的还要包括一些业务逻辑。 MVC模型关注的是Model的不变,所以,在MVC模型里,Model不依赖于View,但是 View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。
MVVM在概念上是真正将页面与资料逻辑分离的模式,它把资料系结工作放到一个JS里去实现,而这个JS档案的主要功能是完成资料的系结,即把model系结到UI的元素上。
有人做过测试:使用Angular(MVVM)代替Backbone(MVC)来开发,程式码可以减少一半。
此外,MVVM另一个重要特性,双向系结。它更方便你同时维护页面上都依赖于某个栏位的N个区域,而不用手动更新它们。

springmvc帮你做了什么 springmvc和其他mvc框架的区别

ty 和 springmvc框架的区别

没错,是框架,ty是网路通讯的框架,spring mvc是一个开源框架,是为了解决企业应用程式开发

前端框架和mvc框架的区别

前端框架是专门写前端的,比如一个前端框架,一部分负责前台的布局结构(),一部分样式(css),一部分行为(js、jq);mvc是一种设计思想,就是让结构,表现,行为互相分离。

MVC框架:前端请求-》服务端处理请求-》服务端生成HTML页面-》响应给前段展示。
前端框架:前端请求、接收服务端资料对其进行处理。你可以明确看出,前端框架是不包含服务端处理请求功能的。

同是流行MVC框架,比较Strtus2和SpringMVC的区别

Struts2是精确到类粒度,springMVC精确到方法粒度,两者的用法也有所区别,springMVC和spring整合得比较好,在spring的管理下,springMVC的例项是以单例的形式存在的,但Struts2如果以单例存在的话就会有执行绪安全问题。个人比较喜欢springMVC

SpringMVC的工作流程描述
1. 使用者向伺服器传送请求,请求被Spring前端控制Servelt DispatcherServlet捕获;
2. DispatcherServlet对请求URL进行解析,得到请求资源识别符号(URI)。然后根据该URI,呼叫
HandlerMapping获得该Handler配置的所有相关的物件(包括Handler物件以及Handler物件对应的拦截器),最后以
HandlerExecutionChain物件的形式返回;
3. DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter。( 附注 :如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)
4. 提取Request中的模型资料,填充Handler入参,开始执行Handler(Controller)。在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
HttpMessageConveter:将请求讯息(如Json、xml等资料)转换成一个物件,将物件转换为指定的响应资讯
资料转换:对请求讯息进行资料转换。如String转换成Integer、Double等
资料根式化:对请求讯息进行资料格式化。如将字串转换成格式化数字或格式化日期等
资料验证:验证资料的有效性(长度、格式等),验证结果储存到BindingResult或Error中
5. Handler执行完成后,向DispatcherServlet 返回一个ModelAndView物件;
6. 根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;
7. ViewResolver结合Model和View,来渲染检视
8.将渲染结果返回给客户端。
Strut2的体系结构如图所示:
从图可以看出,一个请求在Struts2框架中的处理大概分为以下几个步骤:
1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求;
2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的整合很有帮助,例如:SiteMeshPlugin);
3、接着StrutsPrepareAndExecuteFilter被呼叫,StrutsPrepareAndExecuteFilter询问ActionMapper来决定这个请求是否需要呼叫某个Action;
4、如果ActionMapper决定需要呼叫某个Action,StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy;
5、ActionProxy通过ConfigurationManager询问框架的配置档案,找到需要呼叫的Action类;
6、ActionProxy建立一个ActionInvocation的例项。
7、ActionInvocation例项使用命名模式来呼叫,在呼叫Action的过程前后,涉及到相关拦截器(Intercepter)的呼叫。
8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回
结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用
Struts2框架中继承的标签。在这个过程中需要涉及到ActionMapper。
以上是从巨集观上对比下二者的工作流程,下面针对细节对比二者的不同。
SpringMVC和Struts2的区别:
1. 机制:
springmvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。
spr ing mvc是基于方法的设计 , 而sturts是基于类 ,导致:
效能:
spring会稍微比struts快。 spring mvc是基于方法的设计 , 而sturts是基于类 ,
每次发一次请求都会例项一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制资料
一样。spring3mvc是方法级别的拦截,拦截到方法后根据引数上的注解,把request资料注入进去,在spring3mvc中,一个方法对应一
个request上下文。而struts2框架是类级别的拦截,每次来了请求就建立一个Action,然后呼叫settergetter方法把
request中的资料注入; struts2实际上是通过setter getter方法与request打交道的 ,而 springmvc 不用 setter getter 方法 ;struts2中,一个Action物件对应一个request上下文。
实现restful:
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上 spring3 mvc就容易实现restful url 。 struts2 是类级别的拦截,一个类对应一个 request 上下文;实现 restfulurl 要费劲,因为 struts2 action 的一个方法可以对应一个 url ;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。
资料共享:
struts是在接受引数的时候,可以用属性来接受引数,这就说明引数是让多个方法共享的。
spring3 mvc的方法之间基本上独立的,独享request response资料,请求资料通过引数获取,处理结果通过ModelMap交回给框架方法之间不共享变数
处理ajax的请求
spring3 mvc的验证也是一个亮点,支援JSR303, 处理ajax的请求更是方便 ,只需一个注解 @ResponseBody ,然后直接返回响应文字即可。送上一段程式码:
<span >@RequestMapping("/delUser")
public String delUser(String id, HttpServletResponse response){
String result ="{"result":"error"}";
if (userManager.delUser(id)) {
result ="{"result":"suess"}";
}

return result;

spring3mvc的验证也是一个亮点,支援JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody
@ResponseBody代替了下面的程式码

PrintWriterout = null;
response.setContentType("application/json");

try{
out= response.getWriter();
out.write(result);
}catch (IOException e) {
e.printStackTrace();
}
}</span>
i ntercepter的实现机制:
struts有以自己的interceptor机制, springmvc用的是独立的AOP方式 。这样导致struts的配置档案量还是比springmvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,spring mvc使用更加简洁,开发效率Spring MVC确实比struts2高。

  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码