JNDI解决了ApplicationContext在Spring中无法解决的问题?

时间:2012-07-03 17:05:03

标签: java spring jndi applicationcontext

JNDI是从字符串名称检索/存储数据或对象的方法。此功能由运行应用程序的容器提供。

ApplicationContext允许从字符串名称创建和检索bean。

两者都有类似的需求。然而,Spring提供了从JNDI检索对象的方法。也可以通过JndiTemplate访问JNDI。

真的需要在Spring中使用JNDI吗? ApplicationContext没有解决哪个问题?

2 个答案:

答案 0 :(得分:4)

应用程序上下文无法帮助您查找REMOTE对象。它只会查找当前应用程序中的对象,这些对象不是远程的。

请参阅以下“Context.PROVIDER_URL”。您可以访问REMOTE对象,如EJB或RMI或JMS等。此外,您可以访问由Java EE容器管理的任何资源,例如DataSource。

ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://HOSTNAME:PORT");

答案 1 :(得分:3)

这是一个范围问题。 Spring的范围仅限于容器内的应用程序。 JNDI是一个全局命名API,可以插入许多不同的命名/目录体系结构。