spring3mvc与struts2比较

深入浅出:大型语言模型(LLM)的全面解读 在当今的数字化时代,人工智能技术已经成为各行各业的核心驱动力之一。而在人工智能的领域中,大型语言模型(LLM)作为一种引人瞩目的技术,正在以其强大的语言理解和生成能力引领着一场革命。本文旨在深入浅出地解读大型语言模型,探讨其背后的原理、技术突破、应用场景以及未来发展趋势。 阅读详情
转自:http://blog.csdn.net/generalyy0/article/details/7003974
项目刚刚换了web层框架,放弃了struts2改用spring3mvc 
当初还框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢
不用不知道 一用就发现开发效率确实比struts2高 

我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置 
spring3 mvc可以认为已经100%零配置了(除了配置springmvc-servlet.xml外) 

比较了一下strus2与spring3 mvc的差别 

============================================ 
struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入
struts2实际上是通过setter getter方法与request打交道的 
struts2中,一个Action对象对应一个request上下文 

spring3 mvc不同,spring3mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去
在spring3mvc中,一个方法对应一个request上下文 

好了 我们来整理一下 
struts2是类级别的拦截, 一个类对应一个request上下文, 
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现restful url 
而struts2的架构实现起来要费劲 
因为struts2 action的一个方法可以对应一个url 
而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了 

=================================== 
spring3mvc的方法之间基本上独立的,独享request response数据 
请求数据通过参数获取,处理结果通过ModelMap交回给框架 
方法之间不共享变量 

而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的 
这不会影响程序运行,却给我们编码 读程序时带来麻烦 

==================================== 
spring3 mvc的验证也是一个亮点,支持JSR303 
处理ajax的请求更是方便 只需一个注解@ResponseBody ,然后直接返回响应文本即可 

附上一段代码 
Java代码
@RequestMapping(value="/whitelists")   
  1. public String index(ModelMap map){   
  2.     Account account = accountManager.getByDigitId(SecurityContextHolder.get().getDigitId()) ;   
  3.     List<Group> groupList = groupManager.findAllGroup(account.getId()) ;   
  4.     map.put("account", account);   
  5.     map.put("groupList", groupList);   
  6.     return "/group/group-index" ;   
  7. }   
  8.        //@ResponseBody ajax响应     
  9. @RequestMapping(value="/whitelist/{whiteListId}/del")   
  10. @ResponseBody     
  11. public String delete(@PathVariable Integer whiteListId){   
  12.     whiteListManager.deleteWhiteList(whiteListId) ;   
  13.     return "success" ;   
  14. }  

 

评论截选

注解和性能没有关系,Servlet的生命周期是这样的,在调用这个Servlet时候才创建这个Servlet的类并运行init()方法,然后另外有人运行这个Servlet的时候并没有重启创建Servlet和运行里边的init()方法,所以Servlet容器时单利的,spring就是Servlet的封装的框架,包括所有的依赖注入都是在tomcat启动的时候全部被初始化的,其他的注解也一样,也就是说注解也就是以前的xml的配置的替代,以前没个请求都要运行一次xml吗?并不是的,xml是在tomcat启动时就读一次而已并利用里边的配置初始化很多的东西,然后就不在使用了,因为都成了单利的,这样就保证了效率,不是每次都把我们要注入的全部new一次,而是tomcat启动的时候全部new一次以后就不new了,保证了效率问题。


所以我不明白那个 光看注解就知道性能不好? 
注解就是替代了xml配置而已,而且也是初始化一次,也就是说和编写Servlet一样的在init()中做了很多的事而已,并且以后不会在运行init()了,除非你重启tomcat。

struts1也一样,运行一个action的方法的时候创建一个action类,以后再运行就不会创建了,其实也是Servlet的封装的框架。 

struts2特殊一些,没个请求要new一个action来保证线程安全。所以效率会低一些,但是不会低的特别离谱。 

这样也说明了spring3的mvc和struts1的mvc还有Servlet都是方法的线程安全,所以在类方法声明的私有或者公有变量不是线程安全的,struts2的确实是线程安全的。

所有各有各的好处,用什么当然是仁者见仁智者见智了。 

不过我们确实在新项目中大量的使用了spring3,因为REST挺好的。

OpenCV-Python实战(3)——OpenCV中绘制图形文本 OpenCV 是一个的跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。本文介绍了 OpenCV 提供的绘制图形和文本相关的函数。在图形方面,我们了解了如何绘制基本图形(直线、矩形和圆形等)以及高级图形(剪裁线、箭头、椭圆和多边形)。在文本方面,我们了解了如何绘制文本以及 OpenCV 库中的所有可用字体。 阅读详情

相关推荐

深入比较StrutsSpring MVC框架的异同

简介:StrutsSpring是Java Web开发中流行的MVC框架,它们都旨在分离业务逻辑和视图,提升代码维护性和测试性。本文章将从设计理念、功能特性到实现方式深入剖析两者间的区别。Struts侧重控制器,依赖XML配置,而Spring提供了更全面的解决方案,强调轻量级、依赖注入、IoC容器和AOP,拥有更灵活的组件关系和强大的测试支持。虽然Spring在现代Java Web开发中逐渐成为主流,但理解StrutsSpring的不同对于技术选型仍至关重要。

weixin_42376614的博客 1238

SpringMVCstruts的区别

SpringMVCstruts的区别简单易懂对比理解

StrutsSpring两种MVC框架究竟有什么不同呢?

博文链接:https://smallfish.iteye.com/blog/153331

spring mvcstruts 的区别是什么?

1. 架构设计方面:Spring MVC采用的是一种比较轻量化的方式,整体设计更加简洁、灵活,因为其本身是Spring框架的一部分,所以它可以集成Spring框架中的其他模块(比如Spring AOP和Spring IOC),为Web应用程序提供额外的功能,而 Struts 的核心部分更加臃肿,更为传统,具有更多的配置和框架文件。3. 性能方面:Spring MVC 代码量少,运行时间快,由于其轻量化的设计,因此Spring MVC的性能通常比 Struts 的性能要好一些。

m0_68464502的博客 1304

springmvc struts区别

1.springmvc是基于方法开发的,参数接收通过形参实现,且参数只适用于本方法,无法赋值给全局变量。是struts是基于类开发的,参数接收通过全局变量实现,且参数可被各方法调用。 2.springmvc将URLcontoller映射,映射成功后返回一个handler,该handler只包含一个方法,形参接收参数,方法调用结束后参数就会销毁,所以springmvc可进行单例开发,并建议进行单...

明天 385

Spring MVC 是什么? Struts 的区别是什么?

Spring MVCSpring框架中的一个模块,它提供了一种基于MVC(Model-View-Controller)架构的Web开发方式。传统的JSP/Servlet开发方式相比,Spring MVC更加灵活、高效,可以帮助开发人员快速构建高质量的Web应用程序。本文将详细介绍Spring MVC的概念、特点以及Struts的区别,并附上代码示例。

IT徐师兄 1635

spring3 mvcstruts2比较

1、比较了一下strus2spring3 mvc的差别: spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过se

ren154763003的专栏 630

struts2spring3mvc比较

项目刚刚换了web层框架,放弃了struts2改用spring3mvc 当初还框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢 不用不知道 一用就发现开发效率确实比struts2高 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置 spring3 mvc可以认为已经100%零配置了(除了配置springm

jeff技术博客 770

深入剖析:Spring MVCStruts的较量

综上所述,Spring MVCStruts2在底层机制、性能、配置方式等方面存在明显的差异。Spring MVC基于Spring框架,充分利用了Spring的核心特性,具有更高的灵活性和可扩展性。同时,Spring MVC在性能方面具有一定的优势,支持多种视图解析器和异步处理。而Struts2则更侧重于简化开发和提高开发效率,通过丰富的标签库和类级别的拦截机制来降低开发难度。开发者在选择框架时应根据项目需求和团队熟悉度来决定使用哪个框架。

2401_85760095的博客 1256

SpringMVCStruts2之间的区别

一、SpringSpringMVC的区别: spring是一个开源框架,是为了解决企业应用程序开发,功能如下: 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 1、轻量——从大小开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是...

5568

SpringmvcStruts区别

springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。 springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。 Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将Model.

weixin_43883033的博客 1232

终于有SpringMvcStruts2的对比啦

目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvcStruts2进行各方面的比较:

ITsource 4175

matlab-Simulink仿真模型基于锂电池的二阶RC模型,采用扩展卡尔曼滤波算法实现锂电池的SOC估计

matlab_Simulink仿真模型基于锂电池的二阶RC模型,采用扩展卡尔曼滤波算法实现锂电池的SOC估计

上一篇: 感动(一)
下一篇: Flex技术在企业级开发中的应用-网页设计
En_route
博客等级 码龄15年 3粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值