Spring 3:推迟bean实例化

问题描述 投票:0回答:1

我有一个像这样使用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子类化和四处破解来实现此功能?

java spring jndi java-ee-6 spring-jms
1个回答
0
投票

可以使用属性lazy-init="true"将豆制成lazy-initialized

© www.soinside.com 2019 - 2024. All rights reserved.