69 votes

Est CDI un bon remplacement de Printemps?

Nous prévoyons d'écrire une application web à partir de zéro, il a été décidé d'aller avec la dernière édition de Glassfish qui est conforme à Java EE 6 standard, donc nous sommes en train d'analyser si le CDI peut être utiliser à la place de Printemps.

Peut-on dire que le CDI peut être un remplacement pour le Printemps?

103voto

jan groth Points 5071

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...

13voto

Behrang Points 13471

Le printemps est plus que juste un conteneur d'injection de dépendance. Il dispose également d'outils pour les AOP, les modèles pour une utilisation avec JPA, SQL, etc. et encore plus.

Cependant CDI peut être utilisé comme un remplacement pour le Printemps du DI de l'API.

4voto

Dar Whi Points 604

Je suis à l'aide d' Apache OpenWebBeans comme CDI mise en œuvre et MyFaces CODI portable extension pour plusieurs projets. Je suis très heureux avec elle et je n'ai eu aucun problème avec elle. OpenWebBeans actuellement en manque un peu en vue de la documentation, mais si vous ne pouvez pas obtenir quelque chose fonctionne, il est assez facile à utiliser le générateur Maven fourni par MyFaces pour générer des projets simples avec toutes les dépendances nécessaires ou vous demander sur la liste de diffusion. Il est si grand, si vous venez de travailler sur votre Application, et vous n'êtes pas bloqué par de méchants bugs. J'ai aussi fait beaucoup de projets avec le Printemps. C'est ok, mais si vous vous demandez ce que je voudrais utiliser pour le projet suivant la réponse claire est OpenWebBeans et CODI! Je préfère OpenWebBeans au fil de Soudure car OpenWebBeans est très adoptables qui est génial parce que vous pouvez personnaliser plus ou moins tout ce qui n'est pas couverte par le fonctionnaire CDI API/SPI et le runtimeperformance est mieux. Et après le premier projet que je ne serait jamais question de nouveau CODI, car il est très stable, ils ont régulièrement des communiqués et la plupart d'entre eux a apporté beaucoup de nouvelles fonctionnalités qui améliorent la productivité beaucoup. CODI est à mon humble avis la place qui est la plus stable et ont été la plupart des innovations dans l'ensemble de la CDI terre.

Pour répondre à votre question: Pour moi, CDI complètement remplacé le Printemps, mais vous avez besoin de portable des extensions de combler les lacunes. CDI comme norme n'a jamais prévu de tout résoudre et quelques pièces, comme les conversations sont interrompues par la conception. La bonne nouvelle, c'est que vous avez de grands projets comme MyFaces CODI. CODI corrige presque toutes ces questions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X