Should service layer classes be singletons?

n-tier-architecture, spring

Solution

Yes, they should be of scope `singleton`. Services should be stateless, and hence they don't need more than one instance.

Thus defining them in scope `singleton` would save the time to instantiate and wire them.

`singleton` is the default scope in spring, so just leave your bean definitions as they are, without explicitly specifying the `scope` attribute.

You can read more about scopes in the spring docs.

Problem

I am using Spring framework. Should my service classes be created as singletons? Can someone please explain why or why not? Thanks!

Original source