Simply said IOC help decouple (loosely couple) an application by handling its dependencies. Insted of the programer creating an instance for an given dependent object, the IOC Container holds the responsibility ([life cycle] creation, destruction, lifetime, configuration, and dependencies) for all the Object's and provides them as need using DI as Argument, Constructor, Setter & Interface Injector's.
Spring's has may Context's ([ApplicationContext][1] implementations) depending on the way they can be configured such as the couple of the few
FileSystemXmlApplicationContext
-- Loads and configures based on an xml
config file from a local or remote and URI's