java - Spring MVC RestController scope -
i have following spring
controller:
package hello; import java.util.concurrent.atomic.atomiclong; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestparam; import org.springframework.web.bind.annotation.restcontroller; @restcontroller public class testcontroller { private final atomiclong counter = new atomiclong(); @requestmapping("/test") public string test() { long val = counter.incrementandget(); return string.valueof(val); } }
each time access rest api, returns incremented value. learning java , wondering why not return 1 new instance of atomiclong
must have been created each time request comes.
no, testcontroller
bean singleton. @restcontroller
annotation declares spring @component
scope default singleton
. documented in @scope
annotation:
defaults empty string ("") implies scope_singleton.
this means same instance of testcontroller
handle every requests. since counter
instance variable, same every request.
Comments
Post a Comment