Ich habe den folgenden Spring
Controller:
Jedes Mal, wenn ich auf die REST-API zugreife, wird ein inkrementierter Wert zurückgegeben.
Ich lerne gerade Java und frage mich, warum es nicht immer 1 zurückgibt, da jedes Mal, wenn die Anfrage kommt, eine neue Instanz von AtomicLong
erstellt werden muss.
Nein, die TestController
-Bohne ist eigentlich ein Singleton. @RestController
Annotation deklariert a Spring @Component
, deren Umfang standardmäßig SINGLETON
. Dies ist in der @Scope
dokumentiert. Anmerkung:
Der Standardwert ist eine leere Zeichenfolge (""), die SCOPE_SINGLETON impliziert.
Dies bedeutet, dass es dieselbe Instanz von TestController
ist, die alle Anfragen bearbeitet. Da counter
eine Instanzvariable ist, ist sie für jede Anfrage gleich.
Tags und Links java spring spring-mvc spring-restcontroller