Spring Boot中@RestController注解的类是否为单例?
关于@RestController注解类是否为单例的确认
你的理解完全正确!
被@RestController注解标记的SampleController确实是单例类,原因如下:
@RestController本质是@Controller与@ResponseBody的组合注解,被它标记的类会被Spring的组件扫描机制识别并注册为Spring Bean。- Spring容器中Bean的默认作用域就是
singleton(单例),也就是说在整个Spring应用上下文的生命周期里,这个控制器类只会被实例化一次,所有请求都会复用同一个实例。
需要额外注意的是:由于单例实例会被所有请求共享,所以不要在控制器类中定义非线程安全的实例变量(比如用于存储请求专属状态的普通成员变量),否则多个并发请求访问时可能会引发线程安全问题。
内容的提问来源于stack exchange,提问作者Ankit
相关产品推荐
相关产品推荐

