Java開發中使用配置檔案注入值
阿新 • • 發佈:2022-05-23
配置檔案注入值
方式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"));