Je n'ai jamais travaillé sur J'apprécierais vraiment si la différence et les avantages de l'utilisation d'un autre pourraient être expliqués du point de vue pratique. p>
EJB code>, lorsque j'ai démarré la programmation
Spring code> était déjà arrivé et que tous mes projets ont été avec
printemps code> seulement, récemment J'ai eu une interview et ils voulaient une connaissance de
ejb3.0 code> et je veux donc savoir comment
ejb3.0 empilement avec cadre de printemps code> et pourquoi de nombreux projets sont de nos jours avec < Code> Cadre de ressort et non avec EJB3.0 Code>, ne me cite pas ici car je peux me tromper em> strud> p> P> P> P> P>
3 Réponses :
Je dirais que la seule différence majeure est Java Ee 5 et 6 sont une norme. Il a pris les idées du printemps et des autres et créa une norme en dehors d'eux. Comparé aux anciens EJBS, EJB3 est la nuit et la journée. Tous vos EJB sont des pojos et des dépendances sont injectées par le conteneur. Finies sont toutes ces différentes interfaces et créant des instances manuellement à partir de l'interface home. Cela vous prendra peut-être quelques heures de quelques heures à apprendre si vous avez déjà beaucoup fait beaucoup avec le printemps. Vous voudrez également regarder JSF si vous faites des applications Web. P>
Je n'ai jamais fait une vraie application avec les vieux EJBS parce que c'était une telle douleur. EJB3 J'utilise tout le temps car il est sans effort. Si vous voulez essayer le tout le plus récent, obtenez une copie de Glassfish, ce que je pense reste le seul serveur certifié Java EE 6. P>
Alors n'ayant pas connu ni travaillé avec EJB n'affecter en aucune manière l'apprentissage EJB 3?
Essayez de ne pas utiliser JSF si vous le pouvez. Il y a très peu de standard à ce sujet de nos jours et vous vous retrouvez dans un verrouillage impliqué.
@Steven: Pouvez-vous être plus précis? Je démarre un projet JSF en ce moment, et il me semble que la mise en œuvre de base JSF est normalisée et mise en œuvre aussi bien. Il est vrai que les bibliothèques de composants essaient de se distinguer de nouvelles fonctionnalités et d'utiliser celles bien sûr de vous attacher à cette bibliothèque.
Je dirais ne pas avoir utilisé les anciens EJBS aidera à apprendre EJB3. C'est complètement différent, alors essayez de voir comment cela se rapporte à la vieille substance vous ralentirait.
EJB est une technologie assez ancienne (CA. 1999). Cependant, jusqu'à la version 3 de la norme, elle était horriblement gênante à utiliser. Le printemps est devenu populaire comme une alternative saine qui offrait certaines des mêmes caractéristiques essentielles (transactions déclaratives et sécurité) ainsi que de nouvelles nouvelles (injection de dépendance, AOP). Il a également bien intégré avec de nombreuses autres technologies telles que Hibernate. P>
Cependant, en commençant par V3.0, EJBS (ou plutôt toute la plate-forme Java EE dont les EJB sont une partie) ont une refonte majeure et est devenue beaucoup plus facile à utiliser. De plus, de nombreuses caractéristiques rendues populaires par divers cadres (y compris le printemps) ont été transformées en normes officielles et ajoutées à Java EE. P>
À l'heure actuelle, la plate-forme Java EE gagne beaucoup de terrain contre la popularité, car elles sont sur la facilité d'utilisation et les caractéristiques, et Java EE présente l'avantage d'être basé sur des normes ouvertes avec Mises d'exécution multiples pour la plupart des composants. Dans le même temps, il me semble que le printemps a des problèmes de suivre l'état de la technique en matière d'intégration d'autres cadres (qui étaient sa force). P>
Ainsi, comment l'injection de dépendance est-elle réalisée en EJB3, en train d'essayer de comparer EJB3 avec le printemps pour voir si je peux trouver un terrain d'entente entre la pile et certaines connaissances au sol qui m'aideraient à comprendre la technologie EJB3
@Rachel: L'injection DPendency EJB3 est basée sur l'annotation, avec la configuration XML en tant que retombe. Il utilise les annotations JSR-250 et certaines spécifiques EJB. En fait, presque tout dans EJB3 est basé sur l'annotation avec la configuration XML en tant que retombe. Je crois que cela a été inspiré par le printemps, il devrait donc être assez familier.
Cela vous dérangerait-il d'élaborer ce que vous entendez par "il me semble que le printemps a des problèmes de suivre l'état de la technique en matière d'intégration d'autres cadres?" Ceci est une déclaration très générale, ce qui vous a spécifiquement donné cette impression?
@kdonald: Par exemple, la dernière version de printemps s'intègre par défaut avec Hibernate 3.3.1 - qui a plus de 2 ans.
@kdonald: C'est le problème avec l'approche "Nous ferons l'intégration pour vous" du printemps - cela mène directement dans un tapis roulant de mise à jour. L'approche Java EE est «Définissons une norme et intégrez-la en collant à l'API standard» - ce que tout le monde ne peut pas faire et conduit à ses propres contraintes, mais est définitivement plus évolutive.
Les versions du ressort des outils de 3ème partie compile sont généralement les versions minimum i> appuyées par le cadre. Le printemps fonctionne bien avec les versions les plus récentes et ne manda pas quelle version à utiliser. J'utilise Hibernate 3.6, et c'est mon choix en tant que développeur d'applications. Je ne pense pas que tu auras vraiment le printemps.
@MichaelborgwardwardTIlle la question a également demandé "également quelle serait la meilleure façon de commencer à apprendre pour EJB3, quels sont les livres recommandés, le tutoriel en ligne pour la même chose?". Pouvez-vous vous recommander le livre ou la ressource qui vous a plus aidé que EJB 3 est concerné?
En termes d'injection de dépendance et d'architectures de la dépendance, le printemps a eu l'avantage sur Java EE 5 en termes de flexibilité et de facilité d'utilisation, bien que d'autres l'ont dit, Java EE 5 (EJB3) a été une amélioration énorme sur les versions précédentes de Java ee / ejb. Avec Java Ee 6, je crois que Java EE a sauté avant le printemps dans la mise en œuvre de la nouvelle CDI (JSR-299) et à MVC W / JSF 2.0. p>
Les tutoriels Oracle Online sont rudimentaires, mais un bon point de départ pour apprendre Java EE. Une excellente ressource pour l'apprentissage de DI à Java Ee 6 est la série d'articles de Reza Rahman http://www.theserverside.com/news/1373391/dependency-njection-in-java-ee-6-Part-- p>
Je ne suis pas capable de comprendre JEE 6 a sauté devant JSF sur l'architecture MVC code>? Je n'ai pas utilisé JSF dans le passé et j'ai donc clairement compris le point, pouvez-vous élaborer plus explicitement?
JSF est une technologie composante de sorte qu'elle a toujours été une approche plus moderne que des cadres axés sur la demande telles que des jambes de force, du Spring MVC, etc. mais JSF a également été en proie à des problèmes de la part du début - principalement sur la complexité. Avec JSF 2.0, ils semblent l'avoir enfin compris - principalement parce qu'ils ont beaucoup emprunté de la couture. En regardant la pile JeE6 maintenant, il est fortement intégré au niveau des données à travers la présentation (où ils utilisent maintenant des facelets beaucoup plus propres que JSP - qui sont à peu près ce que vous êtes toujours bloqué avec le printemps). Mais l'adoption de JEE6 va prendre du temps.
Printemps prend en charge une variété d'options d'affichage, notamment JSP, Freemarker, Velocity, et i> JSF. L'infrastructure de traitement de la vue est extensible et vous pouvez également brancher vos propres options personnalisées. Vous n'êtes pas coincé avec JSP au printemps.
JSF n'est pas une technologie de rendu, c'est un cadre MVC. FreeMarker et Velocity sont des installations de modèles simples, ce ne sont pas des technologies de rendu plein soufflé telles que le JSP et les facelets. Vous pouvez utiliser des facelets avec le printemps MVC, mais c'est un coup assez de saignement et il n'y a pas beaucoup de soutien direct alors que JSF 2.0 a été écrit pour intégrer W / Faceaux. Et si vous allez utiliser JSF 2.0, vous choisiriez certainement CDI qu'il a été codéesigne avec le printemps DI.
Le printemps et le JSF ont bien fonctionné ensemble depuis la JSF 1,0 jours, et cela continue d'être le cas avec JSF 2.0. Les développeurs que je connais à l'aide de JSF 2.0 utilisent le ressort comme fournisseur de haricots géré, au minimum. Certains d'entre eux utilisent également des flux Web pour la navigation, et certains ont des faceaux faces branchés en tant que technologie de visualisation de Spring MVC. PrimeFaces est la bibliothèque de composants JSF 2.0 la plus populaire.
Je n'établirais pas non plus JSF comme une approche "plus moderne" que des architectures axées sur la demande. "Plus impliqué sur le côté serveur" est plus précis. En général, il y a une tendance à faire plus sur le client, et moins sur le serveur, et les cadres dirigés par la demande en bénéficient de cela.
Les développeurs que je connais à l'aide de JSF 2.0 sont tous utilisant CDI, aucun n'utilise de printemps. MÊME W / FACELETS, je ne connais que 2 gars en l'utilisant, mais ils l'utilisent tous les deux avec JSF. CDI et JSF 2.0 ont été codifiés et construits pour cibler des facelets. Cela a un sens.
Évidemment, nous ne sommes pas d'accord sur cela et les arguments commencent à répéter. Dans le passé, le printemps a à la fois participé à des technologies de Jee et améliorées. Avec JeE6, je crois que certaines zones où le printemps complète ou battait Jee dans le passé est maintenant parti. Mais le modèle économique du printemps est d'avoir beaucoup et beaucoup de fers au feu. Ils ne se soucient pas de gagner la guerre de la guerre ou la guerre MVC. Il y a beaucoup de façons qu'ils peuvent gagner, y compris des offres totales telles que Roo. Il y a une douzaine de technologies où leur prochain succès pourrait venir.