IoC контейнер (Inversion of Control container) - это основная часть фреймворка, которая реализует принцип инверсии контроля (IoC) и управляет созданием и управлением объектами в приложении. IoC контейнер берет на себя ответственность за создание и инстанцирование объектов, а также за управление их жизненным циклом. Вместо того, чтобы явно создавать объекты в коде приложения, разработчик определяет конфигурацию объектов в IoC контейнере, и контейнер берет на себя создание и управление этими объектами. Контейнер также обрабатывает внедрение зависимостей (Dependency Injection, DI), внедряя необходимые зависимости в объекты, которые они требуют. Это позволяет избежать жесткой связанности между объектами и упрощает тестирование и переиспользование кода. IoC контейнеры предоставляют различные возможности конфигурации, такие как аннотации, XML-файлы или Java-конфигурации, чтобы определить, какие объекты создавать, какие зависимости внедрять и как управлять их жизненным циклом. Примером IoC контейнера является Spring Framework, который предоставляет мощные возможности IoC и DI для разработки приложений на Java.