JNDI es como un mapa de esteroides ¿verdad? Utilizo una clave para encontrar referencias a objetos. Además, ¿qué es InitialContext? Parece que no entiendo la idea.Comprender JNDI
Respuesta
Conceptualmente, JNDI es como System.getProperties()
con esteroides.
System.getProperties()
le permite pasar los parámetros String
a su código desde la línea de comandos. De forma similar, JNDI le permite configurar objetos arbitrarios fuera de su código (por ejemplo, en archivos de configuración del servidor de aplicaciones) y luego usarlos en su código.
En otras palabras, es una implementación de Service Locator pattern: su código obtiene los servicios configurados por el entorno del registro centeral.
Como suele ser con los localizadores de servicios, su código debe tener un punto de entrada para acceder al localizador de servicios. InitialContext
es este punto de entrada: crea InitialContext
y luego obtiene los servicios requeridos de JNDI con lookup()
.
código de let's talk, la clase que carga el jndi es un singleton, usted le proporcionará la clave de sus recursos de jndi. A continuación, estoy cargando un origen de datos (datasource = "JDBC/dummy").
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("jndicontext");
ds = (DataSource) envCtx.lookup("JDBC/dummy");
} catch (Exception e) {
log.error(e);
}
El contexto inicial me devuelve el recurso como un objeto. Podría haber cargado un frijol de la misma manera.
Connection conn = ds.getConnection();
¿Pero cuál es el punto? Solo almacena objetos para un entorno específico sin considerar su tipo. Y luego cambiar su información sobre la marcha. Notarás que no estoy escribiendo ningún nombre de usuario/contraseña.
En este ejemplo, dependiendo del entorno actual: - En producción, devuelve una conexión a una base de datos. - En el entorno de integración, devuelve una conexión a otra base de datos - En desarrollo, crea otra implementación de la clase (simulacros) y utiliza archivos xml como fuente de datos.
Saludos
- 1. búsqueda JNDI fallida (NameNotFoundException)
- 2. Spring Jndi Configuration, Server.xml
- 3. Spring Jndi Context y PropertyPlaceholderConfigurer
- 4. JNDI con Active Directory PartialResultException
- 5. Tomcat vs Weblogic JNDI Lookup
- 6. Recursos JNDI comunes en Tomcat
- 7. Comprender NSRunLoop
- 8. Comprender enumeraciones en Java
- 9. Comprender ROLLUP en SQL
- 10. Comprender boost :: disjoint_sets
- 11. Comprender esta declaración RegEx
- 12. Comprender el futuro/subprocesamiento
- 13. Comprender el método $ .validator.unobtrusive.adapters.addBool()
- 14. Android - Comprender View.getLocalVisibleRect (Rect)
- 15. Comprender FFT en aurioTouch2
- 16. Comprender struct sockaddr
- 17. Comprender el archivo Gemfile.lock
- 18. Comprender ensamblados .NET
- 19. Comprender OAuth con Perl
- 20. Comprender Thread.currentThread(). GetContextClassLoader(). GetResourceAsStream()
- 21. Comprender xcode linking (ld)
- 22. Comprender MongoMappers many relationship
- 23. Uso de ActiveMQ a través de JNDI
- 24. Configuración/búsqueda de JNDI en Glassfish
- 25. Fuente de datos JNDI fuera del contenedor
- 26. ¿Cuál es el propósito de JNDI
- 27. Jetty 7: configurando JNDI para Start.java
- 28. ¿Dónde puedo aprender sobre las cadenas JNDI?
- 29. ¿Cómo y dónde agregar JNDI para Hibernate?
- 30. ¿Cómo configurar JPA para usar JNDI?
dunno acerca de los esteroides, que siempre es más lento que un mapa implementado trivialmente y permite solamente de cadenas o nombres de teclas. Si me preguntas: es una versión paralizada de Map – bestsss