亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

詳解Spring Boot讀取配置文件與配置文件優先級

2024-07-14 08:42:03
字體:
來源:轉載
供稿:網友

Spring Boot讀取配置文件

1)通過注入ApplicationContext 或者 Environment對象來讀取配置文件里的配置信息。

package com.ivan.config.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.core.env.Environment;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ConfigController {  @Autowired  ApplicationContext context;  @Autowired  Environment environment;  @RequestMapping(value="/config", method={RequestMethod.GET})  public String getConfigContent(){           String name = context.getEnvironment().getProperty("db.user.name");    return name;  }  @RequestMapping(value="/configEnv", method={RequestMethod.GET})  public String getConfigEnvironment(){    String name = environment.getProperty("db.user.name");    return name;  }}

2)通過@ConfigurationProperties配合@PropertySource讀取配置文件里的配置信息。

1:通過@PropertySource指定當前類里屬性的配置文件地址,ConfigurationProperties可以指定配置的前綴,@Configuration用于定義一個配置類:

package com.ivan.config.entity;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;@Configuration@PropertySource("classpath:config/druid.properties")@ConfigurationProperties(prefix = "druid")public class DruidConfig {  private int  initialSize;  private int  minIdle;  private int  maxActive;  private int  maxWait;  private String validationQuery;  private boolean testWhileIdle;  private boolean testOnBorrow;  private boolean testOnReturn;  public int getInitialSize() {    return initialSize;  }  public void setInitialSize(int initialSize) {    this.initialSize = initialSize;  }  public int getMinIdle() {    return minIdle;  }  public void setMinIdle(int minIdle) {    this.minIdle = minIdle;  }  public int getMaxActive() {    return maxActive;  }  public void setMaxActive(int maxActive) {    this.maxActive = maxActive;  }  public int getMaxWait() {    return maxWait;  }  public void setMaxWait(int maxWait) {    this.maxWait = maxWait;  }  public String getValidationQuery() {    return validationQuery;  }  public void setValidationQuery(String validationQuery) {    this.validationQuery = validationQuery;  }  public boolean isTestWhileIdle() {    return testWhileIdle;  }  public void setTestWhileIdle(boolean testWhileIdle) {    this.testWhileIdle = testWhileIdle;  }  public boolean isTestOnBorrow() {    return testOnBorrow;  }  public void setTestOnBorrow(boolean testOnBorrow) {    this.testOnBorrow = testOnBorrow;  }  public boolean isTestOnReturn() {    return testOnReturn;  }  public void setTestOnReturn(boolean testOnReturn) {    this.testOnReturn = testOnReturn;  }  @Override  public String toString() {    return "DruidConfig [initialSize=" + initialSize + ", minIdle=" + minIdle + ", maxActive=" + maxActive + ", maxWait=" + maxWait + ", validationQuery=" + validationQuery + ", testWhileIdle=" + testWhileIdle + ", testOnBorrow=" + testOnBorrow + ", testOnReturn=" + testOnReturn + "]";  }}

2:對應的配置文件:

druid.initialSize=5druid.minIdle=5druid.maxActive=20druid.maxWait=60000druid.validationQuery=select 'x'druid.testWhileIdle=true druid.testOnBorrow=true druid.testOnReturn=true

3:在需要用到的類通過@Autowired注入

package com.ivan.config.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import com.ivan.config.entity.DruidConfig;@RestControllerpublic class DruidConfigController {  @Autowired  public DruidConfig druidConfig;  @RequestMapping(value="/druidConfig", method={RequestMethod.GET})  public String getDruidConfig(){    return druidConfig.toString();  }}

3)通過@Value注解

1:需要得到配置屬性的類如下,可以在任何需要得到配置的地方用@Value注解

package com.ivan.config.entity;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;@Configurationpublic class ValueTest {  @Value("${db.user.name}")  private String username;  public String getUsername() {    return username;  }  public void setUsername(String username) {    this.username = username;  }}

2:測試Controller類通過@Autowired注入實體類

package com.ivan.config.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import com.ivan.config.entity.ValueTest;@RestControllerpublic class ValueController {  @Autowired  private ValueTest value;  @RequestMapping(value="/configValue", method={RequestMethod.GET})  public String getConfig(){    return value.getUsername();  }}

Spring boot 配置文件優先級:

1:命令行參數。(以--開頭的參數,比如可以設置:--server.port對同一套代碼設置不同的參數)
2: 通過 System.getProperties() 獲取的 Java 系統參數。
3:操作系統環境變量(這解釋了為什么你通過application.properties設置的user.name取的是系統的用戶名了)
4:從 java:comp/env 得到的 JNDI 屬性。
5: 應用 Jar 文件之外的屬性文件(系統的application.properties文件)
6:應用 Jar 文件內部的屬性文件。
7: 在應用配置 Java 類(包含“@Configuration”注解的 Java 類)中通過“@PropertySource”注解聲明的屬性文件。
8: 通過“SpringApplication.setDefaultProperties”聲明的默認屬性。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久亚洲影视| xvideos亚洲人网站| 国产视频久久久久久久| 欧美成人午夜影院| 久久久精品免费| 中文字幕一区二区精品| 在线播放国产一区中文字幕剧情欧美| 亚洲视频在线免费观看| 亚洲美女精品成人在线视频| 91在线观看免费| 91在线视频成人| 国产美女扒开尿口久久久| 性欧美xxxx视频在线观看| 亚洲国产精品一区二区三区| 日韩黄色高清视频| 国产精品极品尤物在线观看| 亚洲精品一区二区在线| 欧美成人免费在线视频| 欧美日韩在线视频首页| 久久夜色撩人精品| 亚洲精品国产suv| 久久久亚洲国产天美传媒修理工| 日韩欧美国产一区二区| 91成品人片a无限观看| 欧美日韩国产限制| 国产精品久久久久久久久久东京| 久久午夜a级毛片| 国产精品美女在线| 亚洲欧洲国产一区| 久久久久久97| 亚洲男女自偷自拍图片另类| 欧美综合国产精品久久丁香| 久久精品99久久香蕉国产色戒| 亚洲国产欧美一区二区丝袜黑人| 2018中文字幕一区二区三区| 亚洲国产古装精品网站| 精品成人国产在线观看男人呻吟| 亚洲综合在线做性| 日韩精品免费在线播放| 亚洲欧美日韩直播| 亚洲欧洲在线看| 91精品久久久久久久久久另类| 久久的精品视频| 成人国产精品日本在线| 亚洲成色777777在线观看影院| 深夜精品寂寞黄网站在线观看| 成人自拍性视频| 日韩成人av网| 国产成人精品一区二区| 日韩视频第一页| 久久久精品视频成人| 亚洲精选在线观看| 欧美一级视频在线观看| 亚洲精品免费网站| 国产精品久久久久久av福利软件| 亚洲大尺度美女在线| 日韩欧美在线观看| 亚州欧美日韩中文视频| 国产精品成人观看视频国产奇米| 国产va免费精品高清在线| 亚洲精品国精品久久99热| 国产精品444| 亚洲视频在线免费观看| 亚洲福利视频二区| 久久成年人免费电影| 久久成人精品一区二区三区| 亚洲午夜女主播在线直播| 91av视频在线| 欧美超级免费视 在线| 尤物tv国产一区| 91超碰caoporn97人人| 欧美与黑人午夜性猛交久久久| 日韩av电影在线播放| 亚洲韩国青草视频| 亚洲精品国产suv| 在线观看国产成人av片| 国产成人综合精品在线| 久久久国产影院| 26uuu另类亚洲欧美日本一| 国产精品国产三级国产aⅴ浪潮| 日韩一区二区三区国产| 日韩电影在线观看中文字幕| 色综合视频网站| 国产91九色视频| 日韩在线观看免费高清| 26uuu国产精品视频| 欧美巨大黑人极品精男| 搡老女人一区二区三区视频tv| 欧美超级免费视 在线| 欧美一级大片在线观看| 深夜福利一区二区| 久久福利网址导航| 狠狠色噜噜狠狠狠狠97| 亚洲视频在线观看视频| 在线观看91久久久久久| 国产一区二区在线免费| 亚洲国产精品久久久久秋霞不卡| 国产精品成人观看视频国产奇米| 国产精品成人av在线| 成人久久一区二区三区| 久久精品国产96久久久香蕉| 国产精品偷伦视频免费观看国产| 欧美激情精品久久久久| 欧美视频专区一二在线观看| 精品福利视频导航| 久久影院免费观看| 亚洲精品欧美极品| 国产偷亚洲偷欧美偷精品| 日本亚洲精品在线观看| 国产亚洲美女精品久久久| 久久久精品亚洲| 国产日韩在线观看av| 亚洲a∨日韩av高清在线观看| 91福利视频在线观看| 欧美日本高清视频| 美女av一区二区三区| 亚洲国产精品高清久久久| 日韩欧美一区二区在线| 国产性猛交xxxx免费看久久| 欧美夫妻性生活xx| 欧洲精品久久久| 久久精品这里热有精品| 国产区亚洲区欧美区| 欧美成人一区在线| 2019中文在线观看| 久久噜噜噜精品国产亚洲综合| 疯狂欧美牲乱大交777| 91精品国产综合久久香蕉最新版| 在线亚洲男人天堂| 亚洲最大福利网| 91极品视频在线| 2019国产精品自在线拍国产不卡| 91在线网站视频| 国产亚洲视频在线观看| 夜色77av精品影院| 日本欧美精品在线| 色av吧综合网| 91精品国产综合久久香蕉的用户体验| 久久亚洲国产精品| 91精品国产99| 欧美一级黑人aaaaaaa做受| 国产日韩av在线播放| 欧美色xxxx| 亚洲国产又黄又爽女人高潮的| xvideos亚洲| 成人午夜小视频| 亚洲欧美日韩爽爽影院| 久久久伊人日本| 91久久精品一区| 欧美日韩国产精品一区二区三区四区| 日韩免费高清在线观看| 性亚洲最疯狂xxxx高清| 欧美在线视频一二三| 欧美激情在线视频二区| 日韩视频免费在线| 日韩av123| 午夜精品美女自拍福到在线| 欧美成人一二三| 九九热这里只有精品免费看| 色婷婷亚洲mv天堂mv在影片| 精品国产乱码久久久久久婷婷| 成人看片人aa| 九九久久国产精品| 日韩美女主播视频|