我有一个像这样使用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子类化和四处破解来实现此功能?
可以使用属性lazy-init="true"
将豆制成lazy-initialized