1. 程式人生 > 其它 >Java開發中使用配置檔案注入值

Java開發中使用配置檔案注入值

配置檔案注入值

方式1:普通字串

例如
caominglong.name=“曹明龍”
使用方式
@Value(“${caominglong.name}”)
private String name;
輸出結果為:name = "曹明龍"

方式2:int、boolean型別

例如
caominglong.age=25
caominglong.sex=true

使用方式跟上面字串的使用方式一致。

方式3:陣列型別

例如
id=1,2,3
使用方式
@Value(“${id}”)
private int[] ids;

當不存在id的配置時,ids為非null,空陣列。長度為0

方式4:list型別

id=1,2,3
使用方式
@Value(“#{'${id}'.split(",")}”)
private List<String> idList;

當不存在id配置時,集合idList的長度為1,存在值“”

方式5:map型別

例如:
user={name:'zs',age:'23'}
使用方式
@Value(“#{${user}}”)
private Map<String,String> userInfo;

額外

1.可以設定預設值
@Value("${name:cml}")
當不存在配置的時候,預設值為cml
2.在配置檔案中配置中文的時候,需要配置為asill碼
然後獲取配置的時候需要轉為utf-8格式
properties.load(new InputStreamReader(inputStream, “UTF-8”));
3.如果需要在修改配置檔案的同時,也可以同步重新整理獲取的配置資料,那麼就不能使用@Value的方式去獲取配置,需要通過IO流的方式去獲取配置。
4.yml跟properties檔案中的配置有所差別
比如配置user={name:'zs',age:'23'}
properties不需要在外層加“”(雙引號)
yml檔案則需要新增“”(雙引號)
5.如果在線上部署的時候,使用的是jar包外面的配置檔案,那麼獲取的時候需要使用下面的方式
InputStream inputStream = new FileInputStream(new File(System.getProperty("user.dir") + File.separator + "application-scfw.properties"));