Nathan Milota wrote:How is this any different than just making an interface, and then a class to use dependency injection of one of the classes that inherits it?
Peter Rooke wrote:Just to add; (IMHO) from a high level the overall objective of Spring is to improve system design for better quality and maintainability.
The aim is to allow as much as possible, a flexible, customisable framework in which developers can focus on the business domain logic (in plain old java classes [pojo]) rather than having to deal with all the software infrastructure complexities. The framework uses DI (or IoC) to reduce coupling (reduce the fixed ties between parts of the system), and also increase cohesion (classes / methods do one thing). DI has been discussed above.