springboot的controller是单例还是多列
@Component
默认单例
如果想声明成多例用
@Component
@Scope(“prototype”)
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释。
开发总结
SpringMVC的controller默认就是单例的
如果你bean配置多例了,依赖这个bean的bean也需要多例才行啊(看例子)
在单例的bean中切记声明成员属性(如Map、List集合来缓存数据),是线程不安全的