真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

spring-boot如何讀取props和yml配置文件

這篇文章主要介紹spring-boot如何讀取props和yml配置文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

目前創(chuàng)新互聯(lián)公司已為上千余家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)站空間、網(wǎng)站改版維護、企業(yè)網(wǎng)站設計、清水河網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

最近微框架spring-boot很火,筆者也跟風學習了一下,廢話不多說,現(xiàn)給出一個讀取配置文件的例子。

首先,需要在pom文件中依賴以下jar包

 
  
  org.springframework.boot 
  spring-boot-starter-web 
   
  
  org.springframework.boot 
  spring-boot-starter-test 
  test 
  

其次,我們需要一個spring-boot啟動類 

@SpringBootApplication 
@EnableConfigurationProperties({PropsConfig.class,YmlConfig.class}) 
public class ReadApplication { 
 public static void main(String[] args) { 
  SpringApplication.run(ReadApplication.class, args); 
 } 
}

沒錯,@EnableConfigurationProperties注解里指出的PropsConfig.class,YmlConfig.class分別就是讀取props和yml配置文件的類。接下來,我們分別進行讀取properties和yml配置文件的具體實現(xiàn)。

1.讀取properties配置文件

在類路徑下放置一個application.properties文件,大致內(nèi)容如下:

master.ds.driverClassName=com.MySQL.jdbc.Driver 
master.ds.url=jdbc:mysql://localhost:3306/test 
master.ds.username=root 
master.ds.password=root 
master.ds.filters=stat 
master.ds.maxActive=20 
master.ds.initialSize=1 
master.ds.maxWait=60000 
master.ds.minIdle=10 
master.ds.timeBetweenEvictionRunsMillis=60000 
master.ds.minEvictableIdleTimeMillis=300000 
master.ds.validationQuery=SELECT 'x' 
master.ds.testWhileIdle=true 
master.ds.testOnBorrow=false 
master.ds.testOnReturn=false 
master.ds.poolPreparedStatements=true 
master.ds.maxOpenPreparedStatements=100 
master.ds.removeAbandoned=true 
master.ds.removeAbandonedTimeout=1800 
master.ds.logAbandoned=true

讀取props配置的類,很簡單,基本就是一個pojo/vo類,在類上加載@ConfigurationProperties注解即可。

@ConfigurationProperties(prefix = "master.ds",locations = "classpath:application.properties") 
public class PropsConfig { 
 private String driverClassName; 
 private String url; 
 private String username; 
 private String password; 
 private String filters; 
 private String maxActive; 
 private String initialSize; 
 private String maxWait; 
 public String getDriverClassName() { 
  return driverClassName; 
 } 
 public void setDriverClassName(String driverClassName) { 
  this.driverClassName = driverClassName; 
 } 
 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; 
 } 
 public String getFilters() { 
  return filters; 
 } 
 public void setFilters(String filters) { 
  this.filters = filters; 
 } 
 public String getMaxActive() { 
  return maxActive; 
 } 
 public void setMaxActive(String maxActive) { 
  this.maxActive = maxActive; 
 } 
 public String getInitialSize() { 
  return initialSize; 
 } 
 public void setInitialSize(String initialSize) { 
  this.initialSize = initialSize; 
 } 
 public String getMaxWait() { 
  return maxWait; 
 } 
 public void setMaxWait(String maxWait) { 
  this.maxWait = maxWait; 
 } 
}

單元測試類

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringBootTest(classes = ReadApplication.class) 
public class ReadApplicationPropsTests { 
 @Autowired 
 private PropsConfig propsConfig; 
 @Test 
 public void testDisplayPropsValue() { 
  String driverClassName = propsConfig.getDriverClassName(); 
  String url = propsConfig.getUrl(); 
  String username = propsConfig.getUsername(); 
  String password = propsConfig.getPassword();   
  String filters = propsConfig.getFilters(); 
  String maxActive = propsConfig.getMaxActive(); 
  String initialSize = propsConfig.getInitialSize(); 
  String maxWait = propsConfig.getMaxWait();     
  System.out.println("driverClassName -> " + driverClassName); 
  System.out.println("url -> " + url); 
  System.out.println("username -> " + username); 
  System.out.println("password -> " + password);   
  System.out.println("initialSize -> " + initialSize); 
  System.out.println("maxWait -> " + maxWait); 
   
 } 
}

可以看到在控制臺輸出的測試內(nèi)容:

driverClassName -> com.mysql.jdbc.Driver 
url -> jdbc:mysql://localhost:3306/test 
username -> root 
password -> root 
initialSize -> 1 
maxWait -> 60000

2.讀取yml配置文件

在類路徑下放置一個application.yml文件,大致內(nèi)容如下:

myProps: #自定義的屬性和值 
 simpleProp: simplePropValue 
 arrayProps: 1,2,3,4,5 
 listProp1: 
 - name: abc 
  value: abcValue 
 - name: efg 
  value: efgValue 
 listProp2: 
 - config2Value1 
 - config2Vavlue2 
 mapProps: 
 key1: value1 
 key2: value2

讀取yml配置文件的類。

@ConfigurationProperties(prefix="myProps") //application.yml中的myProps下的屬性 
public class YmlConfig { 
 private String simpleProp; 
 private String[] arrayProps; 
 private List> listProp1 = new ArrayList<>(); //接收prop1里面的屬性值 
 private List listProp2 = new ArrayList<>(); //接收prop2里面的屬性值 
 private Map mapProps = new HashMap<>(); //接收prop1里面的屬性值   
 public String getSimpleProp() { 
  return simpleProp; 
 } 
  
 public void setSimpleProp(String simpleProp) { 
  this.simpleProp = simpleProp; 
 } 
  
 public List> getListProp1() { 
  return listProp1; 
 } 
 public List getListProp2() { 
  return listProp2; 
 } 
 
 public String[] getArrayProps() { 
  return arrayProps; 
 } 
 
 public void setArrayProps(String[] arrayProps) { 
  this.arrayProps = arrayProps; 
 } 
 
 public Map getMapProps() { 
  return mapProps; 
 } 
 
 public void setMapProps(Map mapProps) { 
  this.mapProps = mapProps; 
 } 
}

單元測試類

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringBootTest(classes = ReadApplication.class) 
public class ReadApplicationYmlTests { 
 @Autowired 
 private YmlConfig ymlConfig;  
 @Test 
 public void testDisplayYmlValue() throws JsonProcessingException { 
  System.out.println("simpleProp: " + ymlConfig.getSimpleProp());    
  ObjectMapper objectMapper = new ObjectMapper(); 
  System.out.println("arrayProps: " + objectMapper.writeValueAsString(ymlConfig.getArrayProps())); 
  System.out.println("listProp1: " + objectMapper.writeValueAsString(ymlConfig.getListProp1())); 
  System.out.println("listProp2: " + objectMapper.writeValueAsString(ymlConfig.getListProp2())); 
  System.out.println("mapProps: " + objectMapper.writeValueAsString(ymlConfig.getMapProps()));  
 } 
}

可以看到在控制臺輸出的測試內(nèi)容:

simpleProp: simplePropValue 
arrayProps: ["1","2","3","4","5"] 
listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}] 
listProp2: ["config2Value1","config2Vavlue2"] 
mapProps: {"key1":"value1","key2":"value2"}

是不是很神奇,不需要spring的applicationContext.xml文件也可以順利運行之。

以上是“spring-boot如何讀取props和yml配置文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁名稱:spring-boot如何讀取props和yml配置文件
瀏覽地址:http://weahome.cn/article/igepei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部