Bonjour tout le monde,
Pourrai-je savoir quel est la différence technique entre les conteneurs lourds comme les EJB et les conteneurs léger comme Spring.
Merci d’avance.
Bonjour tout le monde,
Pourrai-je savoir quel est la différence technique entre les conteneurs lourds comme les EJB et les conteneurs léger comme Spring.
Merci d’avance.
D'abord, dire qu'un conteneur EJB est un partie pris. Tu commences mal, avec ta question.
Ensuite, il faudrait plus comparer les architectures sur JavaEE et sur Spring. En particulier, dans JavaEE, il y a CDI qui est un concurrent plus direct à Spring.
Plus exactement, pour couvrir un périmètre similaire, il faudrait EJB + CDI.
Ensuite, il y a trop de choses pour faire une comparaison juste (c'est à dire non partisane) ; il faudrait plutôt que tu précises ce que tu veux faire et comment tu veux travailler, et sur ces bases, on pourra réagir.
Merci pour votre réponse, et pour vos explications. Ce n'est pas pour des fin de travaille que j'ai posé la question, mais plutôt pour comprendre la différence.
Donc vous disiez qu’on ne peut pas dire que EJB à lui tout seul peux se ramenai a un conteneur lourd, il devra avoir l'injection de dépendance (CDI).
Et pour les comparatif c'été seulement pour comprendre les différences et de savoir comment et quand utiliser chaque technologie.
Merci d'avance.
Dans la page de Spring sur wiki on trouve:
« SPRING est effectivement un conteneur dit “ léger ”, c’est-à-dire une infrastructure similaire à un serveur d'applications J2EE. Il prend donc en charge la création d’objets et la mise en relation d’objets par l’intermédiaire d’un fichier de configuration qui décrit les objets à fabriquer et les relations de dépendances entre ces objets. Le gros avantage par rapport aux serveurs d’application est qu’avec SPRING, les classes n’ont pas besoin d’implémenter une quelconque interface pour être prises en charge par le framework (au contraire des serveur d'applications J2EE et des EJBs). C’est en ce sens que SPRING est qualifié de conteneur “ léger ”. »
-Sur spring on déclare les beans : "création d’objets et la mise en relation d’objets par l’intermédiaire d’un fichier de configuration" sans passer par une interface, exemple :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- A simple bean definition -->
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
-Contrairement aux EJB ou l'on implemente une interface, exemple "public class StatelessSessionBeanImpl implements StatelessSessionBean".
Je pense que xml vs Java<=> léger vs lourd.
Sauf que les ejb n'ont pas besoin non plus d'implementer des interfaces spécifiques. Sauf si tu veux faire dans le vieux ejb 2
On appelle un conteneur "lourd" un serveur sur lequel on trouve toutes les implémentations J2EE (jboss, glassfish)
Un conteneur léger n'en dispose que de certaines (tomcat)
Typiquement, tu ne peux pas faire de JMS sans rajouter des choses librairies sur un serveur Tomcat.
Donc pour faire des EJB, tu auras besoin d'un conteneur lourd ou d'ajouter des bibliothèques à un conteneur léger.
Pour faire du Spring, tu seras toujours obligé de rajouter des bibliothèques, mais tu pourras quand même le faire tourner dans un conteneur lourd.
Je ne suis pas mort, j'ai du travail !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager