spring mvc 设置@Scope("prototype")
来源:互联网 发布:淘宝家具店招图片 编辑:程序博客网 时间:2024/06/05 17:38
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中定义很多的属性,那么单例肯定会出现竞争访问了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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"),将其设置为多例模式。
阅读全文
0 0
- spring mvc 设置@Scope("prototype")
- spring mvc 是否要设置@Scope("prototype")
- spring mvc 是否要设置@Scope("prototype")
- spring scope=prototype
- spring scope="prototype"
- Spring注解@Scope("prototype")
- Spring注解@Scope("prototype")
- Spring注解@Scope("prototype")
- ServiceLocatorFactoryBean spring scope prototype
- Spring Bean 的 scope属性为何要设置为prototype
- spring的scope="prototype"
- spring action scope="prototype"
- spring scope="prototype"属性
- Spring注解之@Scope("prototype")
- Spring Bean 的scope什么时候设置为prototype,什么时候设置为singleton
- SPRING中属性SCOPE的prototype是什么意思
- SPRING中属性SCOPE的prototype是什么意思
- SPRING中属性SCOPE的prototype是什么意思
- tf.contrib.legacy_seq2seq.basic_rnn_seq2seq 函数 example 最简单实现
- java 根据给定的日期得到给定日期的前一天的日期
- Flume使用大全之kafka source-kafka channel-hdfs
- jquery Ajax请求本地json
- Oracle基础 用户管理
- spring mvc 设置@Scope("prototype")
- 将tensorflow的backend设置为theano的backend
- python爬虫03
- 安装Levenshtein出错
- MS MDS系列之初识MS Master Data Service(微软主数据服务)
- POJ1947
- 剑指offer--二叉树的镜像
- Oracle创建存储过程、创建函数、创建包的实例
- jzoj1747. Mathematics