spring中bean的scope属性,有如下5种类型:

singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例
prototype表示每次获得bean都会生成一个新的对象
request表示在一次http请求内有效(只适用于web应用)
session表示在一个用户会话内有效(只适用于web应用)
globalSession表示在全局会话内有效(只适用于web应用)
在多数情况,我们只会使用singleton和prototype两种scope,如果在spring配置文件内未指定scope属性,默认为singleton。

单例的原因有二:
1、为了性能。

2、不需要多例。

1、单例不用每次都new,当然快了。

2、不需要实例会让很多人迷惑,因为spring mvc官方也没明确说不可以多例。

我这里说不需要的原因是看开发者怎么用了,如果你给controller中定义很多的属性,那么单例肯定会出现竞争访问了。

package com.lavasoft.demo.web.controller.lsh.ch5;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Created by Administrator on 14-4-9.
*
* @author leizhimin 14-4-9 上午10:55
*/
@Controller
@RequestMapping("/demo/lsh/ch5")
@Scope("prototype")
public class MultViewController {
private static int st = 0; //静态的
private int index = 0; //非静态 @RequestMapping("/test")
public String test() {
System.out.println(st++ + " | " + index++);
return "/lsh/ch5/test";
}
}

单例的:

0 | 0

1 | 1

2 | 2

3 | 3

4 | 4

改为多例的:

0 | 0

1 | 0

2 | 0

3 | 0

4 | 0

最佳实践:定义一个非静态成员变量时候,则通过注解@Scope("prototype"),将其设置为多例模式。

原文:https://blog.csdn.net/zhang_dianliang/article/details/76850906

最新文章

  1. libevent源码分析:http-server例子
  2. java 常见关键字的使用
  3. 一本很不错的书----DOOM启示录
  4. ZOJ3554 A Miser Boss(dp)
  5. (转载)php获取form表单中name相同的表单项
  6. 判断UserAgent是否为手机
  7. 返璞归真 asp.net mvc (3) - Controller/Action
  8. [js高手之路]原型式继承与寄生式继承
  9. java实现二叉树的前中后遍历(递归和非递归)
  10. PHP $_FILES函数详解
  11. 一次基于innobackupex备份及binlog的单表恢复操作
  12. Vue 学习笔记 — 无法避免的dom操作
  13. 【安富莱】【RL-TCPnet网络教程】第10章 RL-TCPnet网络协议栈移植(FreeRTOS)
  14. Confluence 6 设置 Oracle 数据库准备
  15. 【Python64-tkinter_label组件】
  16. Spring Boot 2(一):Spring Boot 2.0新特性
  17. 《Linux 性能及调优指南》2.3 监控工具
  18. a[i++]
  19. 浅介MVC与Backbone
  20. 【小坑】java下载excel文件

热门文章

  1. 安卓、IOS端AEC密钥加密 Java端密钥解密通用实现(16进制表现形式)
  2. beanshell 通过java写数据到文件
  3. c++11多线程记录3: 数据争用和Mutex的使用
  4. 测试类——python编程从入门到实践
  5. 记一次奇怪的python多个变量拼接后的字符串丢失事件
  6. .Net Core WebApi(2)—Swagger
  7. C# vb .net实现锐化效果滤镜
  8. 2019 鹏博士java面试笔试题 (含面试题解析)
  9. 回归写博客时间-----CeliaTodd
  10. 【转载】 C#中float、double以及decimal类型有何不同