使用methodinvokingfactorybean设置静态变量

cgfeq70w  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(291)

我有下面的代码,其中我有2个客户机x和y客户机(为简单起见,通用名称),我通过 MethodInvokingFactoryBean (静态方法调用)
我一直在努力理解为什么当 ClientProvider 变量仅定义为 static ? 如果我把它拆下来就可以了 static 关键字
我知道,声明变量 static 以及 final 两者都不允许(因为它是一个示例,最后一个变量可以声明一次)。但为什么我不能只保持变量 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>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题