首页 » 99链接平台 » 居然没搞明白(程序员线程明白可能会默认)

居然没搞明白(程序员线程明白可能会默认)

admin 2024-11-27 09:29:19 0

扫一扫用手机浏览

文章目录 [+]

程序员:多例

面试官:你可以马上回家等消息了

准备springbootspringmvcspringbean作用域的单例(默认)、多例单例bean声明成员变量是线程不安全的(别搞反了)【Spring MVC】controller之单例模式

配置bean,一个默认(单例),一个多例

居然没搞明白(程序员线程明白可能会默认) 99链接平台
(图片来自网络侵删)

默认吧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启动图

程序员专家请多多喷我,我哪里不对请指出
标签:

相关文章