Я не знаю, что есть «официальное» определение. Статья Фаулера была первой статьей, которую я прочитал на DI. Если это не достаточно авторитетно для вас, я не вижу, как SO улучшит это.
Что для вас значит «просматривал»? Какую часть документации вы прочитали? Вы пытались написать какие-либо приложения с ним? Вы уже проделали довольно хорошую работу по изучению этого для себя, если написали код для Spring и Guice. Если вы только что прочитали несколько статей, которые Google вернул, у вас есть еще много дел.
«Контекст» в Spring означает фабрику, используемую для создания объектов для вас. У меня обычно есть один на приложение или веб-приложение. Мое приложение обычно является «контекстом», в котором создаются объекты.
«жизненный цикл» не отличается для DI - он имеет отношение к тому, когда объект создается, инициализируется, используется и уничтожается.
Компоненты - это данные и операции в одном программном артефакте. Сервисы - это особые компоненты, которые выполняют важные для бизнеса операции, обычно распределяемые в сети. Сервисы обычно являются компонентами, но не все компоненты являются сервисами. Они не синонимы.
Вы можете создавать компоненты или службы без DI-инфраструктуры. Если это поможет вам называть внедренные объекты «компонентами», будьте моим гостем.
Мне любопытно: почему акцент делается на названиях этих вещей? Именование, безусловно, важно, но это не главная проблема DI.