JNDI 解决了 Spring 中 ApplicationContext 没有解决的哪个问题?
Posted
技术标签:
【中文标题】JNDI 解决了 Spring 中 ApplicationContext 没有解决的哪个问题?【英文标题】:Which issue does JNDI solve that ApplicationContext does not solve in Spring? 【发布时间】:2012-07-03 17:05:03 【问题描述】:JNDI 是一种从字符串名称中检索/存储数据或对象的方法。此功能由运行应用程序的容器提供。
ApplicationContext
允许从它们的字符串名称创建和检索 bean。
两者都满足相似的需求。然而,Spring 提供了从 JNDI 检索对象的方法。也可以通过JndiTemplate
访问JNDI。
真的需要在 Spring 中使用 JNDI 吗?它解决了ApplicationContext
没有解决的哪个问题?
【问题讨论】:
【参考方案1】:应用程序上下文不会帮助您查找远程对象。它只会在当前应用程序中查找对象,而不是远程对象。
请参阅以下“Context.PROVIDER_URL”。您可以访问 EJB 或 RMI 或 JMS 等 REMOTE 对象。此外,您还可以访问由 Java EE 容器管理的任何资源,例如 DataSource。
ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://HOSTNAME:PORT");
【讨论】:
【参考方案2】:这是范围的问题。 Spring 的范围仅限于您在其容器内的应用程序。 JNDI 是一个全局命名 API,可以插入到许多不同的命名/目录架构中。
【讨论】:
以上是关于JNDI 解决了 Spring 中 ApplicationContext 没有解决的哪个问题?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 报错 o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applica