Spring中使用@Value讀取porperties文件中的屬性值方法總結及注意事項


本文為博主原創,轉載請注明出處。

  此前曾總結過使用工具類讀取properties文件中的屬性值,有興趣的可以看一下。

 

如何快速獲取properties中的配置屬性值https://www.cnblogs.com/zjdxr-up/p/7763485.html

java中Properties類及讀取properties中屬性值:https://www.cnblogs.com/zjdxr-up/p/7763485.html

這兩種方式都是在項目啟動時,將properties文件加載,第一種是將屬性文件中的值,使用工具類,即key-value的形式,在使用

的時候,根據key獲取value值。

第二種是將屬性文件中的屬性封裝為一個對象,key為屬性,value為屬性值,在項目啟動時候加載,使用的時候,可以使用對象或工具類

獲取屬性值方法直接獲取。

 

最近使用@Value注解讀取屬性文件中的值比較頻繁,在這總結一下。

第一種:使用PropertiesFactoryBean解析properites文件

<!-- 資源文件配置 -->
    <bean id="configProperties"
        class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:conf/web.properties</value>
            </list>
        </property>
    </bean>

讀取方法:@Value("#{id['key']}"):其中的id為PropertiesFactoryBean在spring配置文件中配置的id,key為properties文件中的key。

@Value("#{configProperties['sh.flowLstUrl']}")
private String flowLstUrl;

第二種:通過PreferencesPlaceholderConfigurer解析properites文件

<bean id="config" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
    <property name="location" value="dev.properties" />
</bean>

讀取方法:

@Value("${baidu.http.url}")
private String url;

注意:PropertiesFactoryBeanPropertiesLoaderSupport 直接的實現類, 專門用來管理properties文件的工廠bean,默認是單例的。
PropertyPlaceholderConfigurer是解決 properties 文件占位符問題的,也實現了 PropertiesLoaderSupport 類。

 


免責聲明!

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



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