Spring中使用@Value註解獲取properties配置文件中的變量值

在我們項目中往往會使用到properties配置文件來定義一些跟系統環境有關的配置,因此今天我們學習使用spring中的@Value註解來快速方便地將我們配置文件中的變量值賦值給java類的屬性值。

1.首先我們先在項目中建一個properties配置文件,然後定義好我們需要的變量名和對應的值

2.然後我們需要在spring-xxx.xml任意配置文件中添加下段代碼

<!--測試@Value註解的配置文件-->
<context:property-placeholder location="classpath:sftp.properties" ignore-unresolvable="true"/>

3.我們需要一個Java類來申明我們需要的Java變量,在變量的前面標註註解@Value("${xxx}"),xxx就是配置文件中的變量名稱,該註解只能使用在類屬性值上面,並且類屬性不能定義爲static,代碼:

package com.cd.batch;


import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class BatchPayData {
	
	@Value("${FTP_id}")
	private String FTP_id;
	@Value("${FTP_user}")
	private String FTP_user;
	@Value("${FTP_pwd}")
	private String FTP_pwd;
	@Value("${FTP_port}")
	private String FTP_port;
	@Value("${FTP_path}")
	private String FTP_path;
}


4.現在看似我們的操作就做完了,其實不然,我們還需要一個重要的步驟,我們需要將我們的Java類注入到spring容器中,這樣@Value註解才能生效,畢竟是spring的註解嘛,這些操作只有讓它自己來做才行的。在spring-xxx.xml中注入Java類的實例,我使用的是@Component註解加包掃描的方式,當然你也可以直接配置一個bean在xml文件中,效果都一樣,代碼:

<!--spring掃描注入bean-->
<context:component-scan base-package="com.ssm.config"/>


這樣就實現了在spring中使用@Value註解直接獲取properties文件中的變量值。

但是,這裏還有一個問題,如果我在配置文件中配置了中文漢字,可能會出現亂碼,這個問題怎麼解決呢?在向spring中引入properties配置文件是加上這個:

<!--測試@Value註解的配置文件-->
<context:property-placeholder location="classpath:config/value.properties" file-encoding="UTF-8" ignore-unresolvable="true"/>

把UTF-8換成你自己項目中使用的編碼方式即可,這樣就能解決中文亂碼問題了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章