Безопасность потоков Spring MVC Singleton?

У меня есть одноэлементный bean-компонент Spring (область действия по умолчанию). Таким образом, один экземпляр будет использоваться несколькими потоками. Однако я немного запутался в отношении безопасности потоков, по-видимому, все bean-компоненты Spring являются потокобезопасными, если они не имеют состояния, но мой bean-компонент не является без состояния, он имеет различные переменные экземпляра, которые используются каждым запросом / другими контроллерами / классами.

Вот начало моего одноэлементного bean-компонента:

public class PcrfSimulator {

private final CustomGxSessionIdCacheImpl gxSessionIdCache = new CustomGxSessionIdCacheImpl();
private final PcrfRecord pcrfRec = new PcrfRecord();
private final ResponseConditions responseConditions = new ResponseConditions();

public CustomGxSessionIdCacheImpl getGxSessionIdCache() {
    return gxSessionIdCache;
}

public ArrayList<Rule> getRules() {
    return pcrfRec.getRules();
}

Итак, к вышеперечисленным полям будут обращаться несколько потоков - достаточно ли пометить эти поля как изменчивые, или мне нужно отметить методы, которые обращаются к ним (там много не только в этом классе, но и в других контроллерах / классах) с синхронизацией и использованием ожидания / уведомления и т. д.

Большое спасибо!

6
задан Rory 21 February 2012 в 10:54
поделиться