The main benefits of IOC are:
- It minimizes the amount of code in your application.
- It makes your application easy to test as it doesn't require any singletons or JNDI lookup mechanisms in your unit test cases.
- Loose coupling is promoted with minimal effort.
- IOC containers support eager instantiation and lazy loading of services.