J'ai lu\entendu plusieurs fois à propos de Java tels qu'un conteneur de servlet, cependant, je n'arrive pas à trouver une bonne définition de ce qu'est un conteneur dans l'entreprise Java monde.
Quelqu'un connaît-il une bonne définition d'une entreprise Java container?
Se référant plus généralement au modèle Container (dont une entreprise Java pourrait être considéré comme une spécialisation), le livre Server Component Patterns par M.Volter, et al. offre ce qui suit:
[UN CONTENEUR fournit] un environnement d'exécution qui est chargé d'ajouter les préoccupations techniques aux COMPOSANTS ... Conceptuellement, il enveloppe les COMPOSANTS, donnant ainsi aux clients l'illusion de préoccupations fonctionnelles et techniques étroitement intégrées.
Des exemples de ces problèmes techniques incluent la sécurité, la gestion des transactions, la journalisation, etc.
Les conteneurs communs dans Java EE sont le conteneur de servlet et le conteneur EJB, et je les vois comme des exemples de conteneurs IoC (Inversion of Control). Les aspects cruciaux sont:
Conteneurs Java EE
Normalement, les applications multiniveaux client léger sont difficiles à écrire car elles impliquent de nombreuses lignes de code complexe pour gérer la gestion des transactions et des états, le multithreading, la mise en commun des ressources et d'autres détails complexes de bas niveau. L'architecture basée sur les composants et indépendante de la plate-forme Java EE rend les applications Java EE faciles à écrire car la logique métier est organisée en composants réutilisables. En outre, la = Java EE fournit des services sous-jacents sous la forme d'un conteneur pour chaque type de composant. Étant donné que vous n'avez pas à développer ces services vous-même, vous êtes libre de vous concentrer sur la résolution du problème commercial actuel.
La notion clé derrière un conteneur est inversion de contrôle , où les composants d'application à l'intérieur du conteneur peuvent être couplés de manière lâche avec d'autres composants d'application ainsi qu'avec des ressources de niveau inférieur dont ils dépendent. Pour Java ces ressources sont généralement des choses comme les connexions à la base de données, les connexions réseau, JNDI, etc.
Différents niveaux de conteneurs prennent en charge différentes spécifications, par exemple un conteneur Web/servlet comme Tomcat ne prend pas en charge certaines spécifications de niveau d'application comme EJB3, donc Tomcat ne peut pas câbler ensemble des ejb pour l'injection dans votre application.
"Les conteneurs sont l'interface entre un composant et la fonctionnalité spécifique à la plate-forme de bas niveau qui prend en charge le composant. Avant qu'un composant Web, un bean entreprise ou un composant client d'application puisse être exécuté, il doit être assemblé dans un Java module EE et déployé dans son conteneur. "Voici ma source: http://docs.Oracle.com/javaee/1.4/tutorial/doc/Overview3.html
Un conteneur est un environnement d'exécution qui apporte du dynamisme. Il crée une réponse HTTP, convertit la requête HTTP en un objet et crée et gère le cycle de vie des servlets.
Java EE est la collection des spécifications utilisées pour résoudre des problèmes d'entreprise tels que la sécurité, l'évolutivité, la robustesse, la disponibilité, etc.
Un conteneur qui gère toutes les spécifications de Java EE est connu comme Java conteneur d'entreprise. Par exemple. Glassfish, JBoss etc. (BTW Tomcat n'est pas un conteneur EE, il l'est) conteneur Web)
Il est responsable de la maintenance des composants individuels côté serveur, qui comprennent Java servlets, Java pages du serveur et Java face du serveur.