Spring Framework (Spring Core) - наиболее популярная и функционально насыщенная реализация. Поддерживает внедрение зависимостей через конструктор, сеттер и поле, а также различные способы конфигурации (XML, аннотации, JavaConfig).
Guice - легковесный фреймворк от Google. Использует аннотации и Java-код для конфигурации. Считается более простым и менее многословным по сравнению со Spring Core только для IoC.
PicoContainer - минималистичный IoC-контейнер, ориентированный на простоту и расширяемость. Не использует аннотации или XML, полагаясь на программную конфигурацию.
Dagger - фреймворк для внедрения зависимостей с фокусом на производительность, в основном используется в Android-разработке. Генерирует код во время компиляции, что исключает накладные расходы в рантайме.
CDI (Contexts and Dependency Injection for Java EE) - стандарт Java EE для внедрения зависимостей. Интегрирован с другими спецификациями Java EE.
JUnit 5 (с расширением junit-jupiter-engine) - поддерживает простое внедрение зависимостей для тестов, например, через конструкторы тестовых классов или методы @BeforeEach, @AfterEach.
Micronaut - фреймворк для создания микросервисов, который поддерживает внедрение зависимостей во время компиляции, подобно Dagger, для быстрого старта и низкого потребления памяти.
Quarkus - еще один фреймворк для Kubernetes-нативной Java, который также использует компиляцию для ускорения старта и снижения потребления ресурсов, интегрируя поддержку CDI и других стандартов.