麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Java > 正文

詳解Spring Boot讀取配置文件與配置文件優(yōu)先級

2024-07-14 08:42:03
字體:
供稿:網(wǎng)友

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 配置文件優(yōu)先級:

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

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


注:相關教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 伊人久久电影网 | 国产羞羞视频在线观看免费应用 | 爱草成年 | 97精品视频在线观看 | 日韩视频在线观看免费视频 | 男人的天堂色偷偷 | 亚洲资源在线 | 久久精品片 | 91精品国产乱码久久久久久久久 | 欧美日韩国产综合网 | av在线播放免费 | www.54271.com| 国产成人自拍视频在线 | 国产99久久久久久免费看 | 最新中文字幕免费视频 | 国产午夜亚洲精品 | 免费一级在线视频 | 激情网站免费观看 | 国产好片无限资源 | 成人免费福利 | 国产成人精品视频在线 | 在线观看美女av | 羞羞视频免费观看入口 | 女人叉开腿让男人桶 | 欧美成人做爰高潮片免费视频 | 中国杭州少妇xxxx做受 | 一级免费看片 | 91精品久久久久久 | jizzjizz中国人少妇中文 | 欧美a级在线免费观看 | 亚洲午夜在线观看 | 香蕉久久久 | 欧美精品免费一区二区三区 | 国产剧情v888av| 欧美在线 | 亚洲 | 日本在线不卡一区二区 | 亚洲国产精品二区 | 国产精品久久久免费 | 中文字幕国产一区 | 日本中文字幕电影在线观看 | 911精品影院在线观看 |