首先上测试代码

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;import com.sun.accessibility.internal.resources.accessibility;
@Controller
@Scope("prototype")
public class MyController {private int i = 0; //非静态private static int a=0;//静态@RequestMapping("/test1")public String toShow(ModelMap model) {System.out.println((++i)+"-----"+(++a));return "hello";}
}

当浏览器第一次访问http://localhost:8080/boot-crm/test1.action

我们来看控制台和debug输出信息
注意debug显示的当前controller的id




从debug提供的信息可以看出多例模式下的controller的id会变化,也就是说2次访问action,springMVC创建了不同的controller.

当在controller类上去掉@scope(“prototype”),变成默认的单例模式





2次访问的是同一个controller,共享普通成员变量和静态成员变量.

总结:
单例模式下会共享普通成员变量和静态成员变量,多例模式下普通成员变量不共享,静态成员共享.
在开发中,springMVC优先使用单例模式,而且尽量不要在controller中设定成员变量.
如果要定义成员变量并为成员变量赋值可以配置source.properties,通过读取配置文件为成员变量初始化.

springMVC的controller单例和多例下成员变量的问题相关推荐

  1. springmvc的controller层如何获取到请求的数据

    javaweb应用开发,最常用到的就是应用之间的信息交互,调用别的应用模块得到自己想获取的数据信息,然后解析数据并进行处理返回到上一层.那controller层的方法如何获取http请求/webser ...

  2. SpringMVC Controller单例和多例

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

  3. Spring的Controller是单例还是多例?怎么保证并发的安全

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:riemann_ blog.csdn.net/riemann ...

  4. Controller 是单例还是多例?怎么保证并发的安全

    答案: controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱.正因为单例所以不是线程安全的. 我们下面来简单的验证下: package com.riemann.sprin ...

  5. Spring 的 Controller 是单例还是多例?怎么保证并发的安全

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | riemann_ 来源 | blog.csdn ...

  6. spring 单例 获取多例的位_Spring系列第6篇:玩转bean scope,避免跳坑里!

    公众号关注"程序员二哥", 设为'星标',带你学习更多的知识. 本文内容 详细介绍5中bean的sope及使用注意点 自定义作用域的实现 应用中,有时候我们需要一个对象在整个应用中 ...

  7. Spring中的Bean默认是单例还是多例?如何保证并发安全?

    点击关注公众号,实用技术文章及时了解 Spring的bean默认都是单例的,某些情况下,单例是并发不安全的,以Controller举例,问题根源在于,我们可能会在Controller中定义成员变量,如 ...

  8. Spring中bean的单例与多例

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

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

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

最新文章

  1. 没想到图像直方图有这么多应用场景
  2. 深入浅出SQL Server Replication第一篇:走近Replication(上)
  3. 几种检查调试CSS布局的有效方法
  4. 微软 word转换pdf_如何将行转换为Microsoft Word表中的列
  5. 微软高管解读财报:努力创新云基础架构
  6. offes给excel增加下拉选项_财务“救星”:Excel不止可以下拉单元格,还可以进行成本核算...
  7. Nexus 3.X(Maven仓库私服)仓库迁移与备份
  8. 让Cocos2dx中的TestCPP中的Box2dTest运行起来
  9. 计算机安装微信打不开,电脑版微信打不开解决方法
  10. nginx反向代理,调度器,优化
  11. 紧急求助SPSS大神。spss在xml神经网络预测值为空是怎么回事?
  12. 开启和关闭android移动网络
  13. Drools-决策表
  14. 使用 Zadig 交付云原生微服务应用
  15. 学习管理系统五大好处
  16. 读书笔记--项亮《推荐系统实践》第四章
  17. Galois Field NTT
  18. HTTP API接口设计规范
  19. Keras实例教程(3)
  20. 【论文阅读】Eclipse Attacks on Bitcoin’s Peer-to-Peer Network

热门文章

  1. 【BZOJ4378】[POI2015]Logistyka 树状数组
  2. springmvc生成注册验证码
  3. C++基础总结(4)-----指针
  4. 二维码扫描ZXing简化
  5. JavaScript保留关键字及危险变量名
  6. 2011年我的关键词
  7. Ansible管理命令
  8. 使用Gitosis搭建Git服务器
  9. Machine Learning笔记(三) 多变量线性回归
  10. DEV ComBoxEdit实现模糊检索数据