Мы столкнулись с проблемой многопоточности, когда разработчик ввел изменчивость в компонент Spring. Что-то вроде этого:Убедитесь, что пружинный компонент не имеет состояния
@Component //singleton
public class MyComponent {
...
private String intermediateResults;
public String businessMethod() {
... fills in intermediateResults;
}
public String thisGetterShouldNotBeHere() {
return intermediateResults;
}
}
, который привел к ошибке с многопоточностью - полевые intermediateResults обращались из разных потоков.
Есть ли способ предотвратить добавление состояния к Spring Singleton, например. каким-то статическим анализатором? Плагины SonarQube? Плагины Eclipse? Спасибо за предложения.
http://stackoverflow.com/questions/777849/proper-usage-of-synchronized-singleton – joc
Только один вопрос: не так ли? 'businessMethod()' делает класс изменчивым, а не Getter? –
Конечно, businessMethod сделал его изменчивым. – leokom