Le CDI est l'acronyme de "contexte et l'injection de dépendance", tandis que le Printemps est un écosystème complet autour d'un conteneur d'injection de dépendance. Afin de comparer les deux, vous devez vous différencier de la comparaison.
L'injection de dépendance est gérée par les deux récipients. La principale différence est le fait que le CDI poignées DI dans une dynamique (aka: stateful) ce qui signifie que les dépendances sont résolues au moment de l'exécution. Le printemps approche est statique , ce qui signifie que les composants sont installés ensemble au moment de la création. Alors que la CDI-chemin peut sembler un peu inhabituel pour un premier aperçu, c'est de loin supérieure et offre plus de et les options avancées (j'écris ceci avec l'arrière-plan de deux productif CDI apps).
Si vous regardez l' écosystème, la situation est différente: le Printemps est livré avec un lot de pots (>150), tandis que le CDI est assez petit par lui-même. Typique d'un CDI-utilisation serait à l'intérieur d'une application Java EE 6 serveur, mais vous pouvez facilement le faire fonctionner dans un moteur de servlet ou même Java SE. Cela signifie que l'utilisation de CDI ne fait aucune hypothèse sur l'utilisation d'Hibernate, JPA, EJB ou autre - qui est à vous.
Si vous avez besoin de plus de fonctionnalités, CDI est livré avec le concept de portable extensions (ce qui en soi rend l'API mériteraient). Indépendant des modules d'extension comme Apache CODI et de la Couture 3 existent et couvrent des sujets comme la sécurité, la diffusion, la production de rapports et plus encore.
Pour résumer: le CDI n'est en rien un "remplacement" pour le Printemps de l'écosystème, c'est plutôt une amélioration au cours du Printemps de l'injection de dépendances mécanisme. Il fait partie de Java EE 6, donc si vous êtes sur un GlasFish avec Java EE 6, vous devriez certainement aller pour le CDI. À mes yeux, votre question est plutôt: Peut-on remplacer le Printemps avec Java EE 6? Je suppose que ma réponse est assez évident ;-)
Jetez un oeil à Souder pour obtenir un bon début...