【发布时间】:2020-03-19 16:57:24
【问题描述】:
我有一个使用 JNDI 连接工厂的 bean,如下所示:
<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"/>
<property name="jndiName" value="SOME_NAME"/>
</bean>
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.ow2.carol.jndi.spi.MultiOrbInitialContextFactory</prop>
<prop key="java.naming.provider.url">rmi://some_remote_host:1091</prop>
</props>
</property>
</bean>
事实上,这个connectionFactory在加载上下文后会尝试连接到远程主机。问题是远程服务应该在上下文加载后启动,上下文加载失败,应用程序部署失败。是否可以将工厂的连接推迟到真正需要连接的时刻?
换句话说,连接工厂的连接是急切的,我希望它是懒惰的。有没有办法通过继承 Factory 和 hacking 来实现这个 appart?
【问题讨论】:
标签: java spring jndi java-ee-6 spring-jms