2011-10-20 10 views
38

È vero che le annotazioni javax.inject possono funzionare come sostituzioni dirette per com.google.inject?Sostituzione di com.google.inject con javax.inject

Così, se avessi sostituito tutte le mie attuali annotazioni guing/gin con quelle di javax.inject, la mia app si sarebbe compilata e funzionava bene?

Innanzitutto, javax.inject copre tutte le basi della copertina google.inject?

+1

Si prega di non modificare il mio tag guice di distanza. –

risposta

33

Sì, funzionerà correttamente. In effetti l'autore di guice (Bob Lee) è uno spec-lead per la specifica javax.inject.

javax.inject.Inject non ha l'attributo optional, quindi se si desidera una dipendenza opzionale, è necessario utilizzare l'annotazione guice.

10

realtà, ho scelto di non passare a javax.inject, perché trovo spec molto minimalista in confronto a quello Guice fornisce (che uso):

  • @Optional come detto da @Bozho
  • @ImplementedBy che è molto utile quando si desidera ridurre il numero di collegamenti espliciti (per chiarezza del codice) e quando si desidera poter sovrascrivere facilmente il binding predefinito @ImplementedBy se necessario (ad esempio per i test di integrazione).

Probabilmente ce ne sono altri, ma per me questi 2 sono già in mostra.

+17

@Bozho è un'annotazione guizzica? Stavo solo scherzando!!! –

1

La domanda è piuttosto vecchia ma ... FYI: è possibile impostare automaticamente check that on apiwave.

Imparando con le modifiche precedenti vediamo che com.google.inject.Inject può essere sostituito da javax.inject.Inject.