Dependency injection - это такой паттерн, который описывает логику подмены зависимостей в рантайме. В большинстве случаев это удобно для тестирования. Например, в тестовой среде надо скормить сервису один инстанс какого-нибудь класса, в проде - другой. Такая зависимость помечается соответствующей аннотацией. В андроиде, например, часто юзают дагер для этих целей. В спринге пока сталкиваться с такими задачами не приходилось. В общем, я не вижу способа красиво реализовать этот паттерн при использовании autowired на конструкторе.