对于SpringMVC Controller单例和多例,下面举了个例子说明下.
第一次:类是多例,一个普通属性和一个静态属性。

结果:普通属性:0.............静态属性:0
普通属性:0.............静态属性:1
普通属性:0.............静态属性:2
普通属性:0.............静态属性:3
所以说:对于多例情况普通属性时不会共用的,不会产生影响,对于静态属性会去共用这个属性。
第二次:类改为单例

结果:普通属性:0.............静态属性:0
普通属性:1.............静态属性:1
普通属性:2.............静态属性:2
普通属性:3.............静态属性:3
所以说:对于单例情况普通属性和静态属性都会被共用。
第三次:类去掉@Scope注解

结果:普通属性:0.............静态属性:0
普通属性:1.............静态属性:1
普通属性:2.............静态属性:2
普通属性:3.............静态属性:3
所以说:springmvc默认是单例的。
另外在其他方法里面打印

输出的结果是

跳到别的方法里面也并不会去取初始值,而是再去共用这个属性。
最终:尽量不要在controller里面去定义属性,如果在特殊情况需要定义属性的时候,那么就在类上面加上注解@Scope("prototype")改为多例的模式,以前struts是基于类的属性进行发的,定义属性可以整个类通用,所以默认是多例,不然多线程访问肯定是共用类里面的属性值的,肯定是不安全的,但是springmvc是基于方法的开发,都是用形参接收值,一个方法结束参数就销毁了,多线程访问都会有一块内存空间产生,里面的参数也是不会共用的,所有springmvc默认使用了单例,所以controller里面不适合在类里面定义属性,只要controller中不定义属性,那么单例完全是安全的。springmvc这样设计主要的原因也是为了提高程序的性能和以后程序的维护只针对业务的维护就行,要是struts的属性定义多了,都不知道哪个方法用了这个属性,对以后程序的维护还是很麻烦的。
参考:http://blog.csdn.net/qq_27026603/article/details/67953879
http://blog.csdn.net/ymr0717/article/details/52126804

转载于:https://www.cnblogs.com/beijingstruggle/p/7766238.html

SpringMVC Controller单例和多例相关推荐

  1. Spring中bean的单例与多例

    Spring中bean的单例与多例 前言 Spring中单例与多例 如何配置单例/多例 单例/多例Bean的使用事项 总结 前言 之前其实已经学习过对于单例模式的使用单例模式讲解,也用过一段时间的Sp ...

  2. 设计模式C#描述——单例与多例模式

    设计模式C#描述--单例与多例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式有以下特点: 单例类只能有一个实例. 单例 ...

  3. Spring(07)——单例注入多例之lookup-method

    2019独角兽企业重金招聘Python工程师标准>>> Spring(07)--单例注入多例之lookup-method 博客分类: spring 7 单例注入多例之lookup-m ...

  4. 设计模式C#描述之——简单工厂模式、抽象工厂模式、单例与多例模式

    设计模式C#描述之--简单工厂模式 前 言:设计模式是软件开发领域的精髓之一.学好设计模式是目前每一个开发人员的必修课.目前关于设计模式的书很多,其中比较好的有GOF那本的中译本,但并 不很适合初学者 ...

  5. Java面向对象(接口、匿名内部类、object类、单例、多例)

    1.1接口(抽象类与接口,优先使用接口) 抽象方法和全局常量的集合,使用interface定义,使用implements继承 接口可以多继承(可以向上强制转换) 接口只能有public,一般不写常量 ...

  6. SpringMVC 表单验证

    SpringMVC 表单验证 本章节内容很丰富,主要有基本的表单操作,数据的格式化,数据的校验,以及提示信息的国际化等实用技能. 首先看效果图 然后项目目录结构图 接下来用代码重点学习SpringMV ...

  7. java中单例和多例

    你用杯子喝可乐,喝完了不刷,继续去倒果汁喝,就是单例. 你用杯子喝可乐,直接扔了杯子,换个杯子去倒果汁喝,就是多例. 数据库连接池就是单例模式,有且仅有一个连接池管理者,管理多个连接池对象. 1. 什 ...

  8. 多目标柔性车间调度丨NSGA-II:以算例MK01为例

    车间调度系列文章: 1.车间调度的编码.解码,调度方案可视化的探讨 2.多目标优化:浅谈pareto寻优和非支配排序遗传算法-NSGAII的非支配排序及拥挤度 3.柔性车间调度问题:以算例MK01初探 ...

  9. SpringMVC Controller介绍(转)

    SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...

最新文章

  1. 腾讯后台开发面试题--整理1
  2. selenium webdriver 启动三大浏览器Firefox,Chrome,IE
  3. windows 修改nginx端口号_分享Nginx搭建图片服务器简单实现
  4. Jenkins Ci系列目录
  5. 关于Gossip协议的几个问题
  6. 博文视点大讲堂第20期——Windows 7来了
  7. java 常用习惯用法总结
  8. Linux服务器 屏蔽国外IP访问及简单的防CC攻击拦截
  9. C语言typedef用法详解
  10. 计算机被覆盖文件怎么恢复,如何找回被覆盖的文件?恢复被覆盖文件的方法
  11. 【C】少年时代的经典游戏:三子棋
  12. Centos6.6下编译安装Apache2.2.31
  13. 【DB笔试面试696】在Oracle中,什么OSWatcher工具?
  14. 【网络安全】细分领域总览
  15. 怎么使用计算机计算公式,科学计算器的使用方法 科学计算器的使用指导
  16. 20194311姜晨昊Exp3-免杀原理与实践
  17. 利用php计算bmi代码,用于计算体重指数(BMI)的C程序
  18. 点云最小二乘法拟合平面
  19. SpringBoot2源码学习笔记 续
  20. php safe mode on,php 安全模式开启(safe_mode=on|off)

热门文章

  1. ipython和anaconda区别_Anaconda和ipython环境适配的实现
  2. 华硕服务器芯片,全球首款875P芯片组双至强服务器主板华硕PC-DL震撼上市
  3. 编译其他mysql客户程_mysql编译模块
  4. python网页爬虫例子_Python 利用Python编写简单网络爬虫实例3
  5. 历经 7 年双 11 实战,阿里巴巴是如何定义云原生混部调度优先级及服务质量的?
  6. 揭秘:如何为 Kubernetes 实现原地升级
  7. 为你写诗:3 步搭建 Serverless AI 应用
  8. 微信公众号发多个消息php,微擎系统微信公众号关键字触发回复多条消息实现
  9. 高德机器人的名字是怎么呼叫的_“一键呼叫”上门办服务!龙岗这个“智慧社区”很贴心~...
  10. linux字体栅格化,响应式开发---网页的布局方式、媒体查询、栅格化布局、less语言...