【发布时间】:2015-07-20 19:14:47
【问题描述】:
我有以下使用 SpringMVC 的控制器代码:
@Controller
@Scope("prototype")
@RequestMapping("/messages")
public class MessageController {
@RequestMapping(value="/index", method=RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public String displayAllMessages(ModelMap model) {
System.out.println(this.hashCode());
// processing
return "messages";
}
}
使用@Scope("prototype")时,每一个请求来,this.hashCode()的输出都是不同的,也就是说每一个请求来的时候,都会创建一个新的MessageController实例。
如果不使用@Scope("prototype"),则默认为@Scope("singleton"),每个请求来,this.hashCode()的输出都是一样的,意味着只创建一个MessageController实例。
我不确定什么时候应该使用@Scope("prototype"),什么时候不应该?
【问题讨论】:
标签: java spring spring-mvc