Java 如何使用Spring';s SimpleNameContextBuilder是否知道在其目录中搜索资源?
使用Spring作为其提供者的应用程序如何知道在其目录中搜索资源?什么将应用程序链接到Spring命名目录?例如,前面的bean如何知道在Spring目录中查找resourceJava 如何使用Spring';s SimpleNameContextBuilder是否知道在其目录中搜索资源?,java,spring,jndi,Java,Spring,Jndi,使用Spring作为其提供者的应用程序如何知道在其目录中搜索资源?什么将应用程序链接到Spring命名目录?例如,前面的bean如何知道在Spring目录中查找resourcemydb?JndiObjectFactoryBean是否需要一个属性为java.naming.factory.initial的上下文环境来实现接口?当使用SimpleNameingContextBuilder作为JNDI提供程序时,java.naming.factory.initial的值应该是多少?java运行时类充当j
mydb
?JndiObjectFactoryBean
是否需要一个属性为java.naming.factory.initial的上下文环境来实现接口?当使用SimpleNameingContextBuilder
作为JNDI提供程序时,java.naming.factory.initial的值应该是多少?java运行时类充当java应用程序与其命名目录之间的链接。当一个SimpleNameContextBuilder
时,它将自己安装到NamingManager
中的静态成员。当应用程序创建一个用于检索JNDI上下文的类时,类InitialContext
将委托给NamingManager,后者反过来要求IntialContextFactoryBuilder
(在本例中为SimpleNameContextBuilder
)创建一个,该类最终创建InitialContext
JNDObjectFactoryBean
不需要显式上下文环境,因为SimpleNameingContextBuilder
向NamingManager
提供InitialContextFactory
,而JNDObjectFactoryBean
使用NamingManager
检索其资源。因此,在前面的回答中,JndiObjectFactoryBean
知道如何在Spring命名目录中搜索资源my db
,因为简单地说,SimpleNameingContextBuilder
已经在NamingManager
中成为JNDI提供者,如果要在单元测试中使用模拟InitialContext模拟JNDI树,可以使用SimpleNameingContextBuilder。我在测试的启动方法中实例化了SimpleNameingContextBuildEIT,并成功地创建了内存中的InitialContext。
e、 g.在弹簧试验课上
@BeforeClass
public static void setupJndi() throws Exception {
SimpleNamingContextBuilder.emptyActivatedContextBuilder();
Context context = new InitialContext();
context.bind("java:comp/env/jms/ConnectionFactory",myJmsConnectionFactory);
}
好榜样!这说明了我的观点,即当激活SimpleNameContextBuilder
时,它会将自身安装为默认的JNDI上下文。