spring中默认bean是单例模式,对于大部分无状态的情况下是没问题的,但是如果有成员变量会出现线程安全问题,解决方案是设置scope为 prototype,同时proxyMode设置成target_class或者interfaces。但是会遇到另外的问题,看下下面代码:
@Component
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class TestScope {
String name;
public void call() {
this.name = "123";
}
public void call2() {
System.out.println(this.name);
}
}
如果在外面分别调用call(),call2()的话会输出什么?以及为什么?
看你怎么调了