Компактный runtime-DI для Java: JSR-330, Class-File API и миграция за 2 дня

Джерело:
Хабрахабр / Захабренные / Тематические / Посты

Дата публікації:
01/11/2025 09:06

Постійна адреса новини:
http://www.vsinovyny.com/12417899

Компактный runtime-DI для Java: JSR-330, Class-File API и миграция за 2 дня

 

01/11/2025 09:06 // Хабрахабр / Захабренные / Тематические / Посты

Когда начинал разработку системы многомерного анализа данных временных рядов Dimension-UI, для внедрения зависимостей в исходном коде решил использовать Dagger 2. Практический опыт показал, что для приложений с большим количеством динамически создаваемых объектов инверсия зависимостей, реализованная в Dagger 2, не подходит.

Да, создание графа зависимостей в compile-time — это, во-первых, очень быстро, и, во-вторых, удобно: получаешь сообщения об ошибках конфигурации уже при компиляции.

Но накладные расходы на сопровождение всего этого хозяйства – прямо скажем, это боль.

Чтобы реализовать scope-зависимости, приходится писать и поддерживать много инфраструктурного кода внутри объектов, куда мы внедряем зависимости. В Dagger 2 такая реализация, во-первых, «загрязняет» код, а во-вторых, серьезно осложняет тестирование. Изолировать методы удобным способом не получается: в тестах нужно писать очень много кода, чтобы прокинуть необходимый контекст и корректно мокировать внешние зависимости. Я туда просто не полез — покрывал unit- и UI-тестами только базовую функциональность, где были Singleton-зависимости.

Даже с одними Singleton’ами приходится поднимать отдельную тестовую инфраструктуру для запуска приложения в тестовом режиме. Это не просто неудобно — это очень затратно по времени. Если сравнить усилия, которые надо потратить на реализацию тестирования подобного функционала в Spring и Dagger… Сравнение будет не в пользу Dagger. В целом я начал думать о переходе на runtime-генерацию графа зависимостей.

Читать далее

 

» Читати повністю

 

« Наступна новина з архіву
Гибкие печатные платы на полиимиде или на FR-4 толщиной 0.1 — 02 мм? Что выбрать?
  Попередня новина з архіву
Amazon переводит ИИ на энергию атома: как модульные реакторы меняют дата-центры
»

 

 
© 2025 www.vsinovyny.com