使用Spring的SimpleNamingContextBuilder的应用程序如何知道在其目录中搜索资源?
使用Spring的SimpleNamingContextBuilder
作为其JNDI提供程序的应用程序如何知道在其目录中搜索资源? 什么将应用程序链接到Spring命名目录? 例如,这个早期答案中的JndiObjectFactoryBean
bean如何知道在Spring目录中找到资源my-db
? JndiObjectFactoryBean
是否需要将属性java.naming.factory.initial
设置为接口InitialContextFactory
某些实现的上下文环境? 使用SimpleNamingContextBuilder
作为JNDI提供程序时, java.naming.factory.initial
的值应该是多少?
简而言之,如果想在unit testing中使用模拟InitialContext来模拟JNDI树,可以使用SimpleNamingContextBuilder。 我在一个启动测试方法中实例化了SimpleNamingContextBuildeit,并成功创建了一个内存中的InitialContext。 例如在春季测试class..
@BeforeClass public static void setupJndi() throws Exception { SimpleNamingContextBuilder.emptyActivatedContextBuilder(); Context context = new InitialContext(); context.bind("java:comp/env/jms/ConnectionFactory",myJmsConnectionFactory); }
Java运行时类NamingManager
充当Java应用程序及其命名目录之间的链接。 当SimpleNamingContextBuilder
激活时 ,它会将自身安装到NamingManager
静态成员InitialContextFactoryBuilder
。 当应用程序创建一个InitialContext
来检索JNDI上下文时,类InitialContext
委托给NamingManager,而NamingManager又要求IntialContextFactoryBuilder
(在本例中为SimpleNamingContextBuilder
)创建一个IntialContextFactory
,它最终会创建InitialContext
。
JndiObjectFactoryBean
不需要显式的上下文环境,因为SimpleNamingContextBuilder
为SimpleNamingContextBuilder
提供了InitialContextFactory
,而JndiObjectFactoryBean
使用NamingManager
来检索其资源。 因此,在前面的答案中, JndiObjectFactoryBean
“知道”在Spring命名目录中搜索资源my-db
因为SimpleNamingContextBuilder
已将自己建立为SimpleNamingContextBuilder
中的JNDI提供程序。
- 如何validation用户点击我发送给他/她的电子邮件中的链接?
- 使用Java的REST API
- JavaFX:使用ObservableMap填充TableView,该ObservableMap具有其值的自定义类
- 在java中基于空格分割一个字符串,用双引号和单引号转义那些空格以及前面带\
- java GC发生了什么? PermGen空间正在填补?
- 我如何使用Javamultithreading从多个文件中读取?
- 在Spring MVC中使用无效数据提交表单时发送的语法错误请求(使用hibernate Validator)
- Spring – 使用新的Property File值替换bean属性值
- Java:使用actionlistener在该类的对象上调用另一个类中的函数