跨Spring MVC Controller方法共享数据

时间:2014-05-19 17:55:26

标签: java spring spring-mvc

在其他MVC框架中,跨控制器方法的数据是不可共享的,因为进入控制器的每个请求都是一个独立的请求。春天怎么做到这一点?它是否初始化控制器的一个实例,并且该实例用于处理所有请求?如果它是相同的控制器单身,然后让我说我有@Autowired服务,那里会发生什么?是否会有一个将要使用的服务实例?

提前致谢。

2 个答案:

答案 0 :(得分:1)

是的,Spring控制器是单例,每个Web应用程序每个控制器只有一个实例。 @ Repository,@ Service和@Controller都是默认的单例,因为它们没有自己的状态,但访问它们的每个线程都执行某些特定于线程的操作,因此这些bean不受它自己的并发访问的影响,因为它没有它的自己的国家。

答案 1 :(得分:0)

有一篇很好的文章讨论了单身人士和线程安全问题 https://tarunsapra.wordpress.com/2011/08/21/spring-singleton-request-session-beans-and-thread-safety/