How does Spring bean Handle concurrency

Rajeev Akotkar picture Rajeev Akotkar · Dec 8, 2012 · Viewed 24.5k times · Source

My web application uses Spring IOC. So all my spring beans will be singletons by default. In case if two requests try to access two different methods of a single class (for example MySpringBean is a class which has two methods searchRecord and insertRecord) at the same time, both the requests will access the same spring bean concurrently.

How does the same spring bean be available to both the clients at the same time or is it going to be concurrency problem when both the requests will try to access two different methods but through the same spring bean. And since spring bean is a singleton so new instance can not be formed. In this case how is this going to work?

Answer

Tomasz Nurkiewicz picture Tomasz Nurkiewicz · Dec 8, 2012

You must first understand when concurrency can cause problems. If your Spring bean is stateless (it doesn't have any fields, all fields are final or all of them are assigned only once), multiple threads can safely use the same bean, or even the same method.

See also: