spring整合SpringMVC Controller 和 Struts2 Action控制层Bean的默认作用域
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的默认作用域相关推荐
- Spring bean 的5个作用域 Spring Bean的默认作用域为:singleton。它相比其他作用域的优点是系统开销小,Bean实例一旦创建成功便可重复使用。 1.singleton作用域
Spring bean 的5个作用域 Spring Bean的默认作用域为:singleton.它相比其他作用域的优点是系统开销小,Bean实例一旦创建成功便可重复使用. 1.singleton作用域 ...
- spring整合springmvc和mybatis
1.spring 1.1 jar包 1.2 spring基本配置,包扫描注解 <!-- 自动扫描 --><context:component-scan base-package=&q ...
- spring整合springmvc案例
面试遇到过上机操作,不知道小伙伴们遇到过没. 案例. 1.新建web项目,找到相关的jar包. 转载于:https://www.cnblogs.com/sjzxs/p/11158116.html
- 史上最详细的SSM框架整合(Spring、SpringMVC、Mybatis)
毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试看 ...
- SpringMVC学习:控制层(Controller)基于注解详解
文章目录 一.URL映射Controller的方法返回值 二.SpringMVC各类注解详解 (一) @Controller (二) @RequestMapping 1.基本用法 2. path属性或 ...
- Strutsw2与Spring整合流程-简述
1. 新建WEB工程: 2. 导入struts2开发包,和资源配置文件 ① globalMessages.properties ② struts.properties 3. ...
- 框架:springboot组合spring、springmvc、mybatis的一个小demo
Spring+SpringMVC+Mybatis就是大名顶顶的SSM了. 这里我们使用IDEA的SpringBoot和版本控制器MAVEN构建一个SSM的demo. 介绍: 在搭建过程中spring整 ...
- Spring、SpringMVC、SpringBoot
1. Spring 框架.Spring模块 Spring 是⼀种轻量级开发框架,旨在提⾼开发⼈员的开发效率以及系统的可维护性,它是很多模块的集合,使⽤这些模块可以很⽅便地协助我们进⾏开发. 这些模块是 ...
- 使用Freemarker来页面静态化,与Spring整合使用
页面静态化介绍 页面静态化其实就是将原来的动态网页(例如通过ajax请求动态获取数据库中的数据并展示的网页)改为 通过静态化技术生成的静态网页,这样用户在访问网页时,服务器直接给用户响应静态html页 ...
- Spring整合Hibernate步骤以及遇到的问题
spring整合Hibernate步骤以及遇到的问题 文章目录 spring整合Hibernate步骤以及遇到的问题 步骤: 创建实体类: 编写Dao层: 编写server层: spring配置文件 ...
最新文章
- 深度信念网络研究现状与展望
- Tomcat参数设置,解决内存溢出问题
- php写一个轻量级的容器,PHP写的一个轻量级的DI容器类
- AndroidUI 控件命名格式
- .NET开源OpenID和OAuth解决方案Thinktecture IdentityServer
- 1603. 设计停车系统
- C#Socket通讯之超时检测
- 新手小白python数据清洗代码_5天10分钟,学会数据清洗!(Python)
- 车间调度建模系列5|扩展析取图之工序间物流周转时间
- 计算机boot进入u盘启动,电脑boot设置U盘启动项具体方法
- wh计算公式_锂电池计算公式wh 锂电池的mah和wh如何换算?
- 中国身份证号码验证,支持15,18位
- Android 页面布局xd,页面布局(XD):小尺寸设备上的页面布局《 从设计到代码:布局设计 》...
- 路由器桥接:老式路由器桥接隐藏网络并开启无线隐藏网络
- c语言中的where用法,c#查询关键字where 子句的运用
- ClickHouse到底牛逼在哪里?为什么比MySQL快831倍!
- 解决阿里云企业邮箱发送错误码提示
- 哈工大计算机技术学制,哈尔滨工业大学研究生学制与学习年限
- CSS简单实现圣杯布局和双飞翼布局
- 图像scale与相机参数_Camera 图像处理原理分析
热门文章
- php8拦截器,Web中的监听器 过滤器 拦截器
- 说明assert()的作用:assert()是一个调试程序时经常使用的宏,在程序执行时计算括号内的表达式,如果表达式为假,程序报告错误,并终止执行;若表达式为真,则继续执行后面的语句。
- 2021-09-03Dien
- Wide Deep 模型详解
- Ubuntu20装Nvidia驱动--中文显示乱码问题
- 137.只出现一次的数字II
- 多态与虚函数(C++)
- 用Tensorflow求逆矩阵
- php5.6软件下载,【PHP下载】PHP for Linux 5.6.6-ZOL软件下载
- mac 10.9 安装 mysql_mac 下安装 mysql (蛋疼)