Конфигурация находится в коде, а не в файлах конфигурации, что является допустимым решением для многих сценариев.
Да, это означает, что вам нужно пересобрать (возможно, только модули), если вы хотите использовать другой способ подключения вашего приложения - хотя, конечно, вы все равно можете получить некоторые значения конфигурации из аргументов командной строки, файлов свойств и т. Д. если хочешь.
Если вам регулярно нужно менять сантехнику приложения и не хотите повторно развертывать что-либо, кроме одного файла, Guice может не подойти вам. Если, с другой стороны, ваша основная причина использования DI состоит в том, чтобы сделать ваш код более понятным, и в производстве вы всегда будете использовать одну и ту же систему слежения (или достаточно близко), тогда Guice - хороший вариант - часто вам нужны кусочки логики в любом случае использовать при сортировке сантехники и компонентов, которые обычно сложно описать / построить декларативно.
Различные структуры DI имеют разные преимущества и недостатки - используйте ту, которая наиболее подходит для вашего приложения.