@Autowired anotação é definida na estrutura do Spring.
@Injectanotação é uma anotação padrão, definida no padrão "Injeção de Dependência para Java" (JSR-330) . O Spring (desde a versão 3.0) suporta o modelo generalizado de injeção de dependência, definido no padrão JSR-330. ( As estruturas do Google Guice e a estrutura do Picocontainer também suportam esse modelo).
Com @Injectpode ser injetada a referência à implementação da Providerinterface, o que permite injetar as referências adiadas.
Anotações @Injecte @Autowired- é quase analogias completas. Assim como a @Autowiredanotação, a @Injectanotação pode ser usada para propriedades, métodos e construtores de ligação automática.
Ao contrário da @Autowiredanotação, a @Injectanotação não tem requiredatributo. Portanto, se as dependências não forem encontradas - será lançada uma exceção.
Há também diferenças nos esclarecimentos das propriedades de ligação. Se houver ambiguidade na escolha dos componentes para a injeção, o @Namedqualificador deve ser adicionado. Em uma situação semelhante para @Autowiredanotação, será adicionado um @Qualifierqualificador (o JSR-330 define sua própria @Qualifieranotação e, através dessa anotação de qualificador, @Namedestá definido).