您好,登錄后才能下訂單哦!
如題所示,有時候我們的一些配置并不能在代碼中“寫死”,而是需要動態(tài)配置在配置文件中。這樣可以使得以后需要修改該參數(shù)時只需要修改配置文件中的參數(shù)值即可,而不需要修改代碼。具體配置如下:
(1)在Spring的配置文件中添加以下配置用于引入?yún)?shù)所在的文件:
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> <value>classpath:article.properties</value> </list> </property> </bean> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"> <property name="properties" ref="configProperties" /> </bean>
注:如果想在Controller中也使用@Value注解引入配置文件中的參數(shù)的話,那么需要將上面的“propertyConfigurer”這個bean在SpringMVC的配置文件中也重復(fù)復(fù)制一遍,也就是:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"> <property name="properties" ref="configProperties" /> </bean>
(2)article.properties文件的具體內(nèi)容如下:
test.author=zifangsky
(3)測試:
package cn.zifangsky.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class TestController { @Value("#{configProperties['test.author']}") private String author; @RequestMapping("/test.html") public void test(){ System.out.println("---------------"); System.out.println("測試: " + author); } }
可以看出,這里使用了@Value注解,其語法如下:
@Value(“#{configProperties[‘參數(shù)名’]}”)
當(dāng)然,還有一種簡寫的語法是:
@Value(“${參數(shù)名}”)
也就是說上面加載參數(shù)那里也可以這樣使用:
@Value("${test.author}") private String author;
(4)最后輸出如下:
--------------- 測試: zifangsky
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。