Injeção de Dependencia - @Inject vs @Autowried

Olá Pessoal!

Estou fazendo testes com injeção de dependência a fim de entender melhor e saber diferenciar algumas coisas pra usar corretamente cada coisa no momento certo.

Agora estou estudando e comparando CDI com @Inject e o @Autowired do Spring4, e me surgiram alguma dúvidas.

Bom, eu já entendi que no Spring preciso colocar a notação @Component na minha classe a ser injetada (bean) e que ela tem que ser declarada para que o Spring possa “gerenciar” e usar o @Autowired pra fazer a injeção dessa classe.

Pois bem, usei na mesma classe controler um @Inject pra injetar a classe HttpServeletResquest e funcionou corretamente.

Agora uma coisa que não entendo, porque se eu fizer um @Inject na minha classe que criei e que quero injetar ele não funciona mas um @Inject na classe HttpServletRequest funciona?

Quais as diferenças reais entre @Inject e @Autowired? quando usar uma ou outra?

Posso usar as duas anotações ao mesmo tempo pra injetar classes no meu controller?

Vou escrever o código do que estou testando:

Classe Auxiliar:

   @Component
   public class Auxiliar() {
       public integer soma(int num1, int num2){
          return num1+num2;
      }
   }

Classe Index Contoller:

   @Controller
   public class IndexContoller() {

     @Inject
     private HttpServletRequest request;

     @Autowired
     private Auxiliar aux;

     @RequestMapping("/home") 
     public String home(){
         System.err.println("Ip Local: "+ request.getLocalAddr());
         System.err.println("Resultado de soma: "+ aux.soma(10,20));
     }

   }

Esse é um exemplo que fiz usando @Inject e @Autowired no mesmo controler, como eu disse, porque não consigo utilizar @inject Auxiliar aux?

Abraços!