externalize) tworzenie i zarządzanie zależnościami pomiędzy komponentami programu – zależności konfigurowane są w pliku, a zarządzanie wykonywane jest przez kontener IoC.

Przykładowo: wykonanie pewnej operacji przez klasę Foo zależy od instancji klasy Bar. W tradycyjnym podejściu, klasa Foo musiałaby stworzyć instancję klasy Bar używając operatora new lub otrzymać taką instancję z klasy fabrykującej. W podejściu IoC, instancja klasy Bar dostarczana jest do Foo w czasie wykonania programu przez zewnętrzny proces (kontener wstrzykuje zależność do klasy Foo).

Szablon programowania aspektowego Spring Framework zapewnia obsługę programowania aspektowego (ang. Aspect Oriented Programming, AOP) zapewniające takie usługi jak zarządzanie transakcjami. AOP dostarcza możliwości zaimplementowania wspólnej logiki, która dotyka wielu miejsc w jednym miejscu i automatyczne jej dodawanie, tam, gdzie jest potrzebnaAOP, działa na zasadzie Dynamicznego Proxy (ang. Dynamic Proxy, dynamicznego – w sensie tworzenia go w czasie wykonania programu). Przykładowo, za pomocą AOP można do mutatorów (ang. setters, mutators) klasy DAO automatycznie dodać fragmenty kodu zarządzające transakcjami. AOP działa na zasadzie wzorca dekorator, który w tym przypadku dekoruje metody klasy dodatkowym kodem wykonywanym fabrykując proxy.