Rahul Tripathi risposta è esatta e quella corretta.Ma per dirla in modo più sintetico che può aiutarti a decidere quale usare, tienilo in questo modo: DI viene in genere utilizzato per assegnare le classi di implementazione alle interfacce. Mentre RI viene utilizzato per estrarre i valori delle proprietà e le connessioni JDBC da JNDI. DI consente di scrivere codice contro le interfacce e decidere in seguito quale implementazione utilizzare. C'è qualche sovrapposizione, in genere quando gli oggetti RI'd sono più di un semplice valore di una proprietà e quando il DI viene utilizzato per passare un valore di proprietà. Un buon esempio di questa sovrapposizione, come ho già detto, è le connessioni JDBC. Una connessione JDBC non è solo una stringa di connessione (valori di proprietà) ma è anche un'implementazione (quali driver utilizzare).
Penso che se si utilizza DI e sia necessario passare qualche valore di proprietà, continuare a utilizzare DI. E se stai usando RI e hai bisogno di passare un oggetto, allora fallo nel RI, se possibile. In definitiva, se si usano entrambi, allora ci sono più file XML che devono essere compilati.
fonte
2015-05-05 19:12:42
link: http://java.dzone.com/articles/resource-injection-vs – Bikku