spring中@value註解

首先,@value須要參數,這裏參數能夠是兩種形式:@Value("#{configProperties['t1.msgname']}")或者@Value("${t1.msgname}");
其次,下面咱們來看看如何使用這兩形式,在配置上有什麼區別:
一、@Value("#{configProperties['t1.msgname']}")這種形式的配置中有「configProperties」,其實它指定的是配置文件的加載對象:配置以下:
    <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:/config/t1.properties</value>
            </list>
        </property>
    </bean>
    這樣配置就可完成對屬性的具體注入了;


    二、@Value("${t1.msgname}")這種形式不須要指定具體加載對象,這時候須要一個關鍵的對象來完成PreferencesPlaceholderConfigurer,這個對象的配置能夠利用上面配置1中的配置,也能夠本身直接自定配置文件路徑。
    若是使用配置1中的配置,能夠寫成以下狀況:
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="properties" ref="configProperties"/>
    </bean>


    若是直接指定配置文件的話,能夠寫成以下狀況:
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="location">
        <value>config/t1.properties</value>
        </property>
    </bean>spring

相關文章
相關標籤/搜索