I guess I’m on an opinionated roll, after declaring my dislike of the Singleton design pattern, I’m taking a swing at @Autowired.
Spring is a great framework for application development for Java and even though it’s now arguably more complex than Java itself, it’s advantages far outweigh the problems. The best part of it to me is the IoC container however, it has introduced one of the largest poxes (next to Singleton :)) to Java coders everywhere: @Autowired. I’ve seen more problems occur in code due to the use of @Autowired and package scan. In fact, Colin Yates of Expert Spring MVC + Webflow fame, has this to say about autowiring:
If you insist on sticking with autowiring, there are three different types of autowiring … bad, dangerous and terrible.
And I don’t think I can say it much better than that.