1. ホーム
  2. spring

[解決済み] Spring - ビーン初期化のための静的最終フィールド(定数)の使用

2023-06-21 20:42:18

質問

CoreProtocolPNamesクラスのstatic finalフィールドを使用して、以下のようにBeanを定義することは可能でしょうか。


<bean id="httpParamBean" class="org.apache.http.params.HttpProtocolParamBean">
     <constructor-arg ref="httpParams"/>
     <property name="httpElementCharset" value="CoreProtocolPNames.HTTP_ELEMENT_CHARSET" />
     <property name="version" value="CoreProtocolPNames.PROTOCOL_VERSION">
</bean>


public interface CoreProtocolPNames {

    public static final String PROTOCOL_VERSION = "http.protocol.version"; 

    public static final String HTTP_ELEMENT_CHARSET = "http.protocol.element-charset"; 
}


もし可能であれば、どのような方法でこれを行うのがベストでしょうか?

どのように解決するのですか?

こんな感じです (Spring 2.5)

<bean id="foo" class="Bar">
    <property name="myValue">
        <util:constant static-field="java.lang.Integer.MAX_VALUE"/>
    </property>
</bean>

ここで util 名前空間は xmlns:util="http://www.springframework.org/schema/util"

しかし、Spring 3では、よりクリーンな @Value アノテーションと式言語を使う方がきれいです。というと、こんな感じになります。

public class Bar {
    @Value("T(java.lang.Integer).MAX_VALUE")
    private Integer myValue;
}