I read a lot of bad things about the Singleton design pattern, but from what I'm compiling, Spring singleton is not the same thing, and it is great for using it.
Recently, I began to wonder if I am abusing this new application I'm working on. Almost all of my classes in this Spring singleton beans application. This is a Jersey web service with several classes of service, in which business object classes (IoC) are introduced, which will contain all the business logic and communicate with DAO classes, which are also introduced using Spring.
I thought that since I can easily make all my classes without attacks, so there is no threading security problem, and since Spring has an instance of the performance cached class, that would be a smart solution.
Since then, I have seen an application developed for my company by a third-party provider, which is the home of the software, and they have all their Spring beans defined as "singleton = false", although most of them have no state, I started to wonder , will this be a best practice approach to Spring beans and if I actually abuse loners?
Does anyone have any comments on this subject in terms of best practices? Should I use Spring singleton whenever I can or should stay away?