springBoot中屬性檔案中的值獲取
阿新 • • 發佈:2018-12-15
1、使用springBoot中自帶的屬性檔案application.properties
datasource.driverName=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://localhost:3306/test
datasource.password=root
datasource.username=root
建立一個數據源的類
package com.spring.boot.chapter3.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; @Component public class DataBaseProperties { @Value("${datasource.driverName}") private String driverName = null; @Value("${datasource.url}") private String url = null; private String username = null; private String password = null ; public String getDriverName() { return driverName; } public void setDriverName(String driverName) { System.out.println(driverName); this.driverName = driverName; } public String getUrl() { return url; } public void setUrl(String url) { System.out.println(url); this.url = url; } public String getUsername() { return username; } @Value("${datasource.username}") public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } @Value("${datasource.password}") public void setPassword(String password) { this.password = password; } @Override public String toString() { return "DataBaseProperties [driverName=" + driverName + ", url=" + url + ", username=" + username + ", password=" + password + "]"; } }
在控制器中獲取該資料來源的值
public class indexController {
@Autowired
private com.spring.boot.chapter3.config.DataBaseProperties dataBaseProperties;
@RequestMapping(value="/index")
public String indexCon() {
System.out.println(dataBaseProperties.getDriverName());
return "index";
}
}
2、自定義屬性檔案,jdbc.properties,獲取屬性檔案中值的方式不一樣,同時在資料來源類上需要加註解
import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; @Component **@ConfigurationProperties("datasource") @PropertySource(value="classpath:jdbc.properties")** public class DataBaseProperties { private String driverName; private String url = null; private String username = null; private String password = null ; public String getDriverName() { return driverName; } public void setDriverName(String driverName) { System.out.println(driverName); this.driverName = driverName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "DataBaseProperties [driverName=" + driverName + ", url=" + url + ", username=" + username + ", password=" + password + "]"; } }
@ConfigurationProperties(“datasource”) ,由該值和類中屬性名稱合併獲取對應屬性檔案的值 @PropertySource(value=“classpath:jdbc.properties”),指明屬性檔案的位置