@Autowired аннотация определяется в рамках Spring.
@Injectаннотация - это стандартная аннотация, которая определена в стандарте «Внедрение зависимостей для Java» (JSR-330) . Spring (начиная с версии 3.0) поддерживает обобщенную модель внедрения зависимостей, которая определена в стандарте JSR-330. ( Фреймворки Google Guice и Picocontainer также поддерживают эту модель).
С @Injectможет быть введена ссылка на реализацию Providerинтерфейса, которая позволяет внедрять отложенные ссылки.
Аннотации @Injectи @Autowired- это почти полные аналогии. Помимо @Autowiredаннотации, @Injectаннотацию можно использовать для свойств, методов и конструкторов автоматической привязки.
В отличие от @Autowiredаннотации, @Injectаннотация не имеет requiredатрибута. Поэтому, если зависимости не будут найдены - будет сгенерировано исключение.
Существуют также различия в уточнениях связующих свойств. Если в выборе компонентов для инъекций существует неопределенность, @Namedследует добавить классификатор. В аналогичной ситуации для @Autowiredаннотации будет добавлен @Qualifierклассификатор (JSR-330 определяет свою собственную @Qualifierаннотацию и с помощью этого квалификатора @Namedопределяется аннотация ).