使用Spring SimpleNamingContextBuilder作为其JNDI提供程序的应用程序如何知道在其目录中搜索资源?什么将应用程序链接到Spring命名目录?例如,JndiObjectFactoryBean这个早期答案中的bean 如何知道my-db在Spring目录中查找资源?是否JndiObjectFactoryBean需要将属性java.naming.factory.initial设置为某些接口实现的上下文环境InitialContextFactory?java.naming.factory.initial当SimpleNamingContextBuilder用作JNDI提供者时,它的价值应该是多少?
sup*_*ova 13
简而言之,如果想在单元测试中使用模拟InitialContext来模拟JNDI树,可以使用SimpleNamingContextBuilder.我在一个启动测试方法中实例化了SimpleNamingContextBuildeit,并成功创建了一个内存中的InitialContext.例如在春季测试班..
@BeforeClass
public static void setupJndi() throws Exception {
SimpleNamingContextBuilder.emptyActivatedContextBuilder();
Context context = new InitialContext();
context.bind("java:comp/env/jms/ConnectionFactory",myJmsConnectionFactory);
}
Run Code Online (Sandbox Code Playgroud)
Java运行时类NamingManager充当Java应用程序及其命名目录之间的链接.当SimpleNamingContextBuilder 激活时,它会将自身安装到静态成员InitialContextFactoryBuilder中NamingManager.当应用程序创建一个InitialContext检索JNDI上下文时,类InitialContext委托给NamingManager,后者又要求IntialContextFactoryBuilder(在这种情况下SimpleNamingContextBuilder)创建一个IntialContextFactory最终创建的InitialContext.
JndiObjectFactoryBean因为不需要明确的上下文环境SimpleNamingContextBuilder提供InitialContextFactory的NamingManager,并JndiObjectFactoryBean使用NamingManager检索其资源.所以,在早期的回答中,JndiObjectFactoryBean"知道"在Spring命名目录中搜索资源,my-db因为它SimpleNamingContextBuilder已经将自己建立为了JNDI提供者NamingManager.
| 归档时间: |
|
| 查看次数: |
8197 次 |
| 最近记录: |