3个回答
展开全部
拿struts2来比较,在spring2.X时代,其MVC框架并不如struts2出彩,但是进入3.1时代以来,springMVC已经完全将struts2甩在后头。
从以下方面来说明spring所具有的优势:
1、配置简化,spring引入Schema Based XML,在其默认必要配置之后,可以灵活的进行2次配置,2次配置的内容大大减少,以及对annotation的全面支持,与之相比struts2的annotation配置在springmvc实现2年后才有通过插件方式实现,实现方式也相当幼稚基本相当于对XML配置方式的翻译,根本没有体现约定优于配置这一理念,这也说明struts2在近年对新标准支持的严重滞后。
2、MVC设计思想的领先,在springmvc中,model这层被抽象的更加灵活,他以方法输入参数为表现形式,具体的行为灵活多样,可以是基本类型,可以是POJO,也可以是request衍生出的各种对象。与之相比,struts2的model定义为controller的一个属性,导致模型层与控制层之间的关系模糊不清。
3、对REST的支持性,springMVC对REST架构的支持是我见过最好的MVC框架,与之相比strtus2虽然也提供了相关插件实现,但是相对于springmvc来可以说是弱智,这是由于Struts2对于请求映射设计的天生缺陷导致。Struts2对于请求的映射最终以一个叫做ActionMapping的类来表述,而构造这个ActionMapping的实现却只是一个非常简单的接口ActionMapper。这个类天然就没有考虑到许多Restful的需求。
相对于springmvc来说,struts2的最基本的问题是响应变化太慢,特别是对Java标准响应太慢。
比如:直到最近 2.3.1 才支持 JSR330,而Spring 已经支持两年多了。目前还不支持JSR 303,虽然有第三方,但不是Out of box的,Spring MVC支持得很好。
从以下方面来说明spring所具有的优势:
1、配置简化,spring引入Schema Based XML,在其默认必要配置之后,可以灵活的进行2次配置,2次配置的内容大大减少,以及对annotation的全面支持,与之相比struts2的annotation配置在springmvc实现2年后才有通过插件方式实现,实现方式也相当幼稚基本相当于对XML配置方式的翻译,根本没有体现约定优于配置这一理念,这也说明struts2在近年对新标准支持的严重滞后。
2、MVC设计思想的领先,在springmvc中,model这层被抽象的更加灵活,他以方法输入参数为表现形式,具体的行为灵活多样,可以是基本类型,可以是POJO,也可以是request衍生出的各种对象。与之相比,struts2的model定义为controller的一个属性,导致模型层与控制层之间的关系模糊不清。
3、对REST的支持性,springMVC对REST架构的支持是我见过最好的MVC框架,与之相比strtus2虽然也提供了相关插件实现,但是相对于springmvc来可以说是弱智,这是由于Struts2对于请求映射设计的天生缺陷导致。Struts2对于请求的映射最终以一个叫做ActionMapping的类来表述,而构造这个ActionMapping的实现却只是一个非常简单的接口ActionMapper。这个类天然就没有考虑到许多Restful的需求。
相对于springmvc来说,struts2的最基本的问题是响应变化太慢,特别是对Java标准响应太慢。
比如:直到最近 2.3.1 才支持 JSR330,而Spring 已经支持两年多了。目前还不支持JSR 303,虽然有第三方,但不是Out of box的,Spring MVC支持得很好。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询