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. Spring Jndi Configuration, Server.xml
- 2. búsqueda JNDI fallida (NameNotFoundException)
- 3. Spring Jndi Context y PropertyPlaceholderConfigurer
- 4. Tomcat vs Weblogic JNDI Lookup
- 5. Recursos JNDI comunes en Tomcat
- 6. JNDI con Active Directory PartialResultException
- 7. Comprender NSRunLoop
- 8. Comprender el futuro/subprocesamiento
- 9. Comprender ROLLUP en SQL
- 10. Comprender enumeraciones en Java
- 11. Comprender boost :: disjoint_sets
- 12. Comprender el archivo Gemfile.lock
- 13. Android - Comprender View.getLocalVisibleRect (Rect)
- 14. Comprender FFT en aurioTouch2
- 15. Comprender esta declaración RegEx
- 16. Comprender OAuth con Perl
- 17. Comprender el método $ .validator.unobtrusive.adapters.addBool()
- 18. Comprender MongoMappers many relationship
- 19. Comprender Thread.currentThread(). GetContextClassLoader(). GetResourceAsStream()
- 20. Comprender ensamblados .NET
- 21. Comprender struct sockaddr
- 22. Comprender xcode linking (ld)
- 23. Fuente de datos JNDI fuera del contenedor
- 24. ¿Cómo y dónde agregar JNDI para Hibernate?
- 25. ¿Cómo configurar JPA para usar JNDI?
- 26. Uso de ActiveMQ a través de JNDI
- 27. Configuración/búsqueda de JNDI en Glassfish
- 28. Nombres JNDI - ¿Se necesita el prefijo "jdbc /"?
- 29. Jetty 7: configurando JNDI para Start.java
- 30. ¿Cuál es el propósito de 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