如何解决使用 MethodInvokingFactoryBean 设置静态变量
我有以下代码,其中有 2 个客户端 x 和 y 客户端(为简单起见,通用名称)
我正在通过 MethodInvokingFactoryBean
(静态方法调用)
当 ClientProvider
变量仅定义为 static
时,我一直在努力理解为什么我的 bean 创建失败?
如果我删除 static
关键字
我知道,声明变量 static
和 final
都是不允许的(因为它是一个实例并且最终变量可以声明一次)。但是为什么我不能保持变量only static
?
public class ClientProvider {
private static XClient xclient;
private static YClient yclient;
if (condition) {
return xclient;
} else {
return yclient;
}
private static getXClient() {
return clientBuilder.build();
}
private static getYClient() {
return clientBuilder.build();
}
}
我的 bean XML 文件看起来像这样
// fully qualified names are provided in actual code
<bean id="ClientProvider" class="ClientProvider">
<constructor-arg index="0" ref="xclient"/>
<constructor-arg index="1" ref="xclient"/>
</bean>
<bean id="xclient" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod">
<value>ClientProvider.getXClient</value>
</property>
</bean>
<bean id="yclient" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod">
<value>ClientProvider.getYClient</value>
</property>
</bean>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。