亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-20 11:02:55 來源:網絡 閱讀:2664 作者:rr57f19160140b1 欄目:開發技術

最近微框架spring-boot很火,筆者也跟風學習了一下,廢話不多說,現給出一個讀取配置文件的例子。 
首先,需要在pom文件中依賴以下jar包 

Java代碼  

  1. <dependencies>  

  2.     <dependency>  

  3.         <groupId>org.springframework.boot</groupId>  

  4.         <artifactId>spring-boot-starter-web</artifactId>  

  5.     </dependency>       

  6.     <dependency>  

  7.         <groupId>org.springframework.boot</groupId>  

  8.         <artifactId>spring-boot-starter-test</artifactId>  

  9.         <scope>test</scope>  

  10.     </dependency>  

  11. </dependencies>  


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

Java代碼  

  1. @SpringBootApplication  

  2. @EnableConfigurationProperties({PropsConfig.class,YmlConfig.class})   

  3. public class ReadApplication {  

  4.     public static void main(String[] args) {  

  5.         SpringApplication.run(ReadApplication.class, args);  

  6.     }  

  7. }  


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

1.讀取properties配置文件 
在類路徑下放置一個application.properties文件,大致內容如下: 下載

Java代碼  

  1. master.ds.driverClassName=com.mysql.jdbc.Driver  

  2. master.ds.url=jdbc:mysql://localhost:3306/test  

  3. master.ds.username=root  

  4. master.ds.password=root  

  5. master.ds.filters=stat  

  6. master.ds.maxActive=20  

  7. master.ds.initialSize=1  

  8. master.ds.maxWait=60000  

  9. master.ds.minIdle=10  

  10. master.ds.timeBetweenEvictionRunsMillis=60000  

  11. master.ds.minEvictableIdleTimeMillis=300000  

  12. master.ds.validationQuery=SELECT 'x'  

  13. master.ds.testWhileIdle=true  

  14. master.ds.testOnBorrow=false  

  15. master.ds.testOnReturn=false  

  16. master.ds.poolPreparedStatements=true  

  17. master.ds.maxOpenPreparedStatements=100  

  18. master.ds.removeAbandoned=true  

  19. master.ds.removeAbandonedTimeout=1800  

  20. master.ds.logAbandoned=true  


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

Java代碼  下載

  1. @ConfigurationProperties(prefix = "master.ds",locations = "classpath:application.properties")  

  2. public class PropsConfig {  

  3.     private String driverClassName;  

  4.     private String url;  

  5.     private String username;  

  6.     private String password;  

  7.     private String filters;  

  8.     private String maxActive;  

  9.     private String initialSize;  

  10.     private String maxWait;  

  11.           

  12.     public String getDriverClassName() {  

  13.         return driverClassName;  

  14.     }  

  15.     public void setDriverClassName(String driverClassName) {  

  16.         this.driverClassName = driverClassName;  

  17.     }  

  18.     public String getUrl() {  

  19.         return url;  

  20.     }  

  21.     public void setUrl(String url) {  

  22.         this.url = url;  

  23.     }  

  24.     public String getUsername() {  

  25.         return username;  

  26.     }  

  27.     public void setUsername(String username) {  

  28.         this.username = username;  

  29.     }  

  30.     public String getPassword() {  

  31.         return password;  

  32.     }  

  33.     public void setPassword(String password) {  

  34.         this.password = password;  

  35.     }  

  36.     public String getFilters() {  

  37.         return filters;  

  38.     }  

  39.     public void setFilters(String filters) {  

  40.         this.filters = filters;  

  41.     }  

  42.     public String getMaxActive() {  

  43.         return maxActive;  

  44.     }  

  45.     public void setMaxActive(String maxActive) {  

  46.         this.maxActive = maxActive;  

  47.     }  

  48.     public String getInitialSize() {  

  49.         return initialSize;  

  50.     }  

  51.     public void setInitialSize(String initialSize) {  

  52.         this.initialSize = initialSize;  

  53.     }  

  54.     public String getMaxWait() {  

  55.         return maxWait;  

  56.     }  

  57.     public void setMaxWait(String maxWait) {  

  58.         this.maxWait = maxWait;  

  59.     }  

  60. }  



單元測試類 

Java代碼  下載

  1. @RunWith(SpringJUnit4Cla***unner.class)  

  2. @SpringBootTest(classes = ReadApplication.class)  

  3. public class ReadApplicationPropsTests {  

  4.     @Autowired  

  5.     private PropsConfig propsConfig;  

  6.       

  7.     @Test  

  8.     public void testDisplayPropsValue() {  

  9.         String driverClassName = propsConfig.getDriverClassName();  

  10.         String url = propsConfig.getUrl();  

  11.         String username = propsConfig.getUsername();  

  12.         String password = propsConfig.getPassword();  

  13.           

  14.         String filters = propsConfig.getFilters();  

  15.         String maxActive = propsConfig.getMaxActive();  

  16.         String initialSize = propsConfig.getInitialSize();  

  17.         String maxWait = propsConfig.getMaxWait();  

  18.                   

  19.         System.out.println("driverClassName -> " + driverClassName);  

  20.         System.out.println("url -> " + url);  

  21.         System.out.println("username -> " + username);  

  22.         System.out.println("password -> " + password);  

  23.           

  24.         System.out.println("initialSize -> " + initialSize);  

  25.         System.out.println("maxWait -> " + maxWait);  

  26.           

  27.     }  

  28. }  


可以看到在控制臺輸出的測試內容: 

Java代碼  

  1. driverClassName -> com.mysql.jdbc.Driver  

  2. url -> jdbc:mysql://localhost:3306/test  

  3. username -> root  

  4. password -> root  

  5. initialSize -> 1  

  6. maxWait -> 60000  



2.讀取yml配置文件 
在類路徑下放置一個application.yml文件下載,大致內容如下: 

Java代碼  

  1. myProps: #自定義的屬性和值  

  2.   simpleProp: simplePropValue  

  3.   arrayProps: 1,2,3,4,5  

  4.   listProp1:  

  5.     - name: abc  

  6.       value: abcValue  

  7.     - name: efg  

  8.       value: efgValue  

  9.   listProp2:  

  10.     - config2Value1  

  11.     - config2Vavlue2  

  12.   mapProps:  

  13.     key1: value1  

  14.     key2: value2  



讀取yml配置文件的類。 

Java代碼  

  1. @ConfigurationProperties(prefix="myProps"//application.yml中的myProps下的屬性    

  2. public class YmlConfig {  

  3.     private String simpleProp;    

  4.     private String[] arrayProps;    

  5.     private List<Map<String, String>> listProp1 = new ArrayList<>(); //接收prop1里面的屬性值    

  6.     private List<String> listProp2 = new ArrayList<>(); //接收prop2里面的屬性值    

  7.     private Map<String, String> mapProps = new HashMap<>(); //接收prop1里面的屬性值    

  8.         

  9.     public String getSimpleProp() {    

  10.         return simpleProp;    

  11.     }    

  12.         

  13.     public void setSimpleProp(String simpleProp) {    

  14.         this.simpleProp = simpleProp;    

  15.     }    

  16.         

  17.     public List<Map<String, String>> getListProp1() {    

  18.         return listProp1;    

  19.     }    

  20.     public List<String> getListProp2() {    

  21.         return listProp2;    

  22.     }    

  23.     

  24.     public String[] getArrayProps() {    

  25.         return arrayProps;    

  26.     }    

  27.     

  28.     public void setArrayProps(String[] arrayProps) {    

  29.         this.arrayProps = arrayProps;    

  30.     }    

  31.     

  32.     public Map<String, String> getMapProps() {    

  33.         return mapProps;    

  34.     }    

  35.     

  36.     public void setMapProps(Map<String, String> mapProps) {    

  37.         this.mapProps = mapProps;    

  38.     }   

  39. }  



單元測試類 

Java代碼  下載

  1. @RunWith(SpringJUnit4Cla***unner.class)  

  2. @SpringBootTest(classes = ReadApplication.class)  

  3. public class ReadApplicationYmlTests {  

  4.     @Autowired  

  5.     private YmlConfig ymlConfig;  

  6.       

  7.     @Test  

  8.     public void testDisplayYmlValue() throws JsonProcessingException {  

  9.         System.out.println("simpleProp: " + ymlConfig.getSimpleProp());    

  10.           

  11.         ObjectMapper objectMapper = new ObjectMapper();  

  12.         System.out.println("arrayProps: " + objectMapper.writeValueAsString(ymlConfig.getArrayProps()));    

  13.         System.out.println("listProp1: " + objectMapper.writeValueAsString(ymlConfig.getListProp1()));    

  14.         System.out.println("listProp2: " + objectMapper.writeValueAsString(ymlConfig.getListProp2()));    

  15.         System.out.println("mapProps: " + objectMapper.writeValueAsString(ymlConfig.getMapProps()));    

  16.   

  17.     }  

  18. }  



可以看到在控制臺輸出的測試內容: 

Java代碼  

  1. simpleProp: simplePropValue  

  2. arrayProps: ["1","2","3","4","5"]  

  3. listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}]  

  4. listProp2: ["config2Value1","config2Vavlue2"]  

  5. mapProps: {"key1":"value1","key2":"value2"}  



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

葵青区| 华池县| 清水河县| 阿拉善左旗| 安丘市| 朝阳区| 股票| 沙坪坝区| 鹤山市| 惠来县| 新河县| 色达县| 景东| 吉水县| 措美县| 长子县| 日照市| 吉木乃县| 无棣县| 德兴市| 南江县| 贵德县| 曲阜市| 雅安市| 贵港市| 罗田县| 邵阳县| 松原市| 新密市| 安达市| 深泽县| 福泉市| 南陵县| 嘉峪关市| 峡江县| 山西省| 平舆县| 镶黄旗| 新化县| 裕民县| 双城市|