Spring中@Value用法收集


一、配置方式

@Value需要參數,這里參數可以是兩種形式:

@Value("#{configProperties['t1.msgname']}")
或者
@Value("${t1.msgname}"); 

這兩形式,在配置上有什么區別:

1、@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>  

這樣配置就可完成對屬性的具體注入;

2、@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 通過注解獲取*.porperties文件的內容,除了xml配置外,還可以通過@value方式來獲取。

使用方式必須在當前類使用@Component,xml文件內配置的是通過pakage掃描方式,

例如:<context:component-scan base-package="pakage_name" />

 
參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM