Ну вот если вы ещё не поняли, Ktor подразумевает немного другой подход. За счёт Locations бойлерплейта будет меньше, но в целом всё делается явно в коде, а не сканом аннотаций. В качестве плюсов - меньше подкапотной магии, больше проверок ошибок при компиляции. Структурировать код можно в любом случае как угодно - всё в одном месте или раскидывать по классам, группируя как-нибудь.
На случай, если не удастся довести дискуссию до логичного конца. В рефлективный вызов нельзя подпихнуть произвольные параметры, просто потому что у него должна быть довольно жесткая сигнатура для того, чтобы его можно было вызвать. Да и контекст он может терять. Поэтому без контейнеров жить с ними тяжело. Если нет рефлексии, то и в контейнерах необходимость отпадает
На случай, если не удастся довести дискуссию до логичного конца. В рефлективный вызов нельзя подпихнуть произвольные параметры, просто потому что у него должна быть довольно жесткая сигнатура для того, чтобы его можно было вызвать. Да и контекст он может терять. Поэтому без контейнеров жить с ними тяжело. Если нет рефлексии, то и в контейнерах необходимость отпадает
Ну контейнер удобно, если есть жизненный цикл у приложения
А я не говорил что для контейнера нужна рефлексия. Но опять же чтобы уменьшить количество однотипных конфигов рефлексия тоже полезна. Только если это не autowired