Spring在整合SpringMVC 时的Controller作用域默认是单例。

Spring在整合Strut2时Action是作用域原型。

我们知道Spring在配置bean时默认是单例。那么对于的service和dao层的bean也是使用的单例模型。

我们做个测试

package com.pyc.test.controller;import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** 创建时间:2015-2-1 下午9:40:03* * @author andy* @version 2.2* */@Controller
@RequestMapping("/my")
public class TestController {private static Integer num_s = 0;private Integer num_n = 0;@RequestMapping("/count")public @ResponseBodyInteger show() {System.out.println("num_s:" + (num_s++) + "   num_n:" + (num_n++));return 1;}}

多次请求之后:

可以看出变量num_n使用的同一个成员变量,所以说明默认是单例。

当我们添加如下代码时,添加@Scope改变为原型模式:

@Controller
@Scope("prototype")
@RequestMapping("/my")

可以看到非静态成员变量始终是新的。

SpringMVC的Controller数据都是从方法参数传入的,是方法级的,使用单例模式,所以在没有共享成员变量情况下是线程安全的,应该避免共享的成员变量防止出现线程安全问题,

而Spring管理的Struts2的Action是原型模式,Action是类级别的,参数可以是成员变量,不存在线程安全问题。

spring整合SpringMVC Controller 和 Struts2 Action控制层Bean的默认作用域相关推荐

  1. Spring bean 的5个作用域 Spring Bean的默认作用域为:singleton。它相比其他作用域的优点是系统开销小,Bean实例一旦创建成功便可重复使用。 1.singleton作用域

    Spring bean 的5个作用域 Spring Bean的默认作用域为:singleton.它相比其他作用域的优点是系统开销小,Bean实例一旦创建成功便可重复使用. 1.singleton作用域 ...

  2. spring整合springmvc和mybatis

    1.spring 1.1 jar包 1.2 spring基本配置,包扫描注解 <!-- 自动扫描 --><context:component-scan base-package=&q ...

  3. spring整合springmvc案例

    面试遇到过上机操作,不知道小伙伴们遇到过没. 案例. 1.新建web项目,找到相关的jar包. 转载于:https://www.cnblogs.com/sjzxs/p/11158116.html

  4. 史上最详细的SSM框架整合(Spring、SpringMVC、Mybatis)

    毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试看 ...

  5. SpringMVC学习:控制层(Controller)基于注解详解

    文章目录 一.URL映射Controller的方法返回值 二.SpringMVC各类注解详解 (一) @Controller (二) @RequestMapping 1.基本用法 2. path属性或 ...

  6. Strutsw2与Spring整合流程-简述

    1.      新建WEB工程: 2.      导入struts2开发包,和资源配置文件 ① globalMessages.properties ② struts.properties 3.     ...

  7. 框架:springboot组合spring、springmvc、mybatis的一个小demo

    Spring+SpringMVC+Mybatis就是大名顶顶的SSM了. 这里我们使用IDEA的SpringBoot和版本控制器MAVEN构建一个SSM的demo. 介绍: 在搭建过程中spring整 ...

  8. Spring、SpringMVC、SpringBoot

    1. Spring 框架.Spring模块 Spring 是⼀种轻量级开发框架,旨在提⾼开发⼈员的开发效率以及系统的可维护性,它是很多模块的集合,使⽤这些模块可以很⽅便地协助我们进⾏开发. 这些模块是 ...

  9. 使用Freemarker来页面静态化,与Spring整合使用

    页面静态化介绍 页面静态化其实就是将原来的动态网页(例如通过ajax请求动态获取数据库中的数据并展示的网页)改为 通过静态化技术生成的静态网页,这样用户在访问网页时,服务器直接给用户响应静态html页 ...

  10. Spring整合Hibernate步骤以及遇到的问题

    spring整合Hibernate步骤以及遇到的问题 文章目录 spring整合Hibernate步骤以及遇到的问题 步骤: 创建实体类: 编写Dao层: 编写server层: spring配置文件 ...

最新文章

  1. 深度信念网络研究现状与展望
  2. Tomcat参数设置,解决内存溢出问题
  3. php写一个轻量级的容器,PHP写的一个轻量级的DI容器类
  4. AndroidUI 控件命名格式
  5. .NET开源OpenID和OAuth解决方案Thinktecture IdentityServer
  6. 1603. 设计停车系统
  7. C#Socket通讯之超时检测
  8. 新手小白python数据清洗代码_5天10分钟,学会数据清洗!(Python)
  9. 车间调度建模系列5|扩展析取图之工序间物流周转时间
  10. 计算机boot进入u盘启动,电脑boot设置U盘启动项具体方法
  11. wh计算公式_锂电池计算公式wh 锂电池的mah和wh如何换算?
  12. 中国身份证号码验证,支持15,18位
  13. Android 页面布局xd,页面布局(XD):小尺寸设备上的页面布局《 从设计到代码:布局设计 》...
  14. 路由器桥接:老式路由器桥接隐藏网络并开启无线隐藏网络
  15. c语言中的where用法,c#查询关键字where 子句的运用
  16. ClickHouse到底牛逼在哪里?为什么比MySQL快831倍!
  17. 解决阿里云企业邮箱发送错误码提示
  18. 哈工大计算机技术学制,哈尔滨工业大学研究生学制与学习年限
  19. CSS简单实现圣杯布局和双飞翼布局
  20. 图像scale与相机参数_Camera 图像处理原理分析

热门文章

  1. php8拦截器,Web中的监听器 过滤器 拦截器
  2. 说明assert()的作用:assert()是一个调试程序时经常使用的宏,在程序执行时计算括号内的表达式,如果表达式为假,程序报告错误,并终止执行;若表达式为真,则继续执行后面的语句。
  3. 2021-09-03Dien
  4. Wide Deep 模型详解
  5. Ubuntu20装Nvidia驱动--中文显示乱码问题
  6. 137.只出现一次的数字II
  7. 多态与虚函数(C++)
  8. 用Tensorflow求逆矩阵
  9. php5.6软件下载,【PHP下载】PHP for Linux 5.6.6-ZOL软件下载
  10. mac 10.9 安装 mysql_mac 下安装 mysql (蛋疼)