程序员:多例
面试官:你可以马上回家等消息了
准备springbootspringmvcspringbean作用域的单例(默认)、多例单例bean声明成员变量是线程不安全的(别搞反了)【Spring MVC】controller之单例模式配置bean,一个默认(单例),一个多例

默认吧controller的作用域去掉
运行结果
http://localhost:8080/check
调用controller3次方法,两个bean竟然都是一样的
给controller增加作用域多例
运行结果这下单例bean地址输出一样的
多例bean每次bean输出都不一样了
开发总结SpringMVC的controller默认就是单例的如果你bean配置多例了,依赖这个bean的bean也需要多例才行啊(看例子)在单例的bean中切记声明成员属性(如Map、List集合来缓存数据),是线程不安全的单例bean线程不安全分析(有成员变量情况)1:写线程同步代码 ,缺点可能会导致性能耗损2:如果你是springbean,可以scope=\"prototype\" 每次请求多是新对象,就不存在线程安全 缺点可能会导致性能耗损 <bean id=\"xxxProcessor\" scope=\"prototype\" class=\"com.xxx.xxxProcessor\"/>3:把共享的资源放到方法里,每次方法调用都是新资源(是局部变量嘛) 因此也没线程安全问题了,缺点可能会导致代码复杂度上升springboot启动图
程序员专家请多多喷我,我哪里不对请指出