假设我们有以下bean:
@Service
public class AccountService {
private String name;
public String sayHello(String name) {
this.name = name;
return "hello, " + this.name;
}
}
在Spring MVC中,如果多个用户同时调用sayHello()
方法但传递不同的参数,他们会得到正确的问候语响应吗?
我只是想知道多个线程会同时修改同名变量吗? 非常感谢!
答案 0 :(得分:1)
看看这个answer。
总结......这两个概念完全不同,因为线程安全与bean本身的代码有关,并且与它的实例化无关。
我希望它有所帮助。
**评论后更新**
您可以尝试这样的事情:
<强> Greetings.java 强>
public class Greetings {
private String name;
public Greetings (String name) {
this.name = name;
}
public String sayHello () {
return "Hello, " + this.name;
}
}
<强> AccountService.class 强>
@Service
public class AccountService {
public String sayHello (String name) {
Greetings greetings = new Greetings(name);
return greetings.sayHello();
}
}
答案 1 :(得分:0)
也许最好的解决方案是将范围从singleton
更改为request
。