Es hängt davon ab, was der Zähler für verwendet wird. Wenn es nur eine ungefähre Vorstellung davon ist, wie oft das Etwas aufgerufen wird, würde ich es private
machen und es drinnen nennen. Wenn es sich 934957453 mal nennt, interessiert es niemanden, ob es um 1%/2% out ist, also würde ich mich nicht darum kümmern, es zu synchronisieren.
@Service
public class MyServiceImpl implements MyService {
private int counter=0;
private int increment() {
return counter++;
}
@Override
public getNumberOfCalls() {
return counter;
}
@Override
public int someMethod() {
increment();
...
}
}
Wenn jedoch der Zähler in irgendeiner Weise verwendet wird, Revision zu tun, Anfrage-Tracking, die Erstellung von einzigartigen IDs oder nicht nur einen Zähler dann würden Sie es synchronisieren müssen und stellen Sie sicher, dass Sie keine Duplikate erhalten.
Es kann problematisch sein, da Spring Beans standardmäßig Singleton sind. Es hängt von der Verwendung davon ab – Jens
Wenn Sie das tun möchten, verwenden Sie mindestens einen der atomaren Datentypen (wie AtomicInteger oder AtomicLong). – dunni