Spring控制器是否是线程安全的?

Edg*_*ase 3 java stringbuilder multithreading stringbuffer thread-safety

我正在Spring Controller中编写一个私有实用程序方法.

我需要使用StringBuffer或者StringBuilder.前者是线程安全的,后者不是,但后者要快得多.

基本上,它看起来像这样:

private String buildTextToDisplay() {
    StringBuffer sb = new StringBuffer();
    sb.append( ... );
    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)

显然,我不希望两个会话同时调用它并返回垃圾.

aio*_*obe 12

由于sb是局部变量,因此不需要是线程安全的.(每个线程都有自己对唯一的引用StringBuilder,对吧?)


Vik*_*dor 5

StringBuffer当a用作类的成员变量时,它的线程安全性很有用.但如果它是一个局部变量,那么StringBuilder更好,因为没有局部变量的线程安全概念.