国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot配置讀取實現方法解析

Spring Boot配置讀取實現方法解析

2020-08-14 00:04猿天地 Java教程

這篇文章主要介紹了Spring Boot配置讀取實現方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Spring Boot里面所有的配置信息都放在application.properties中,如果我們想讀取配置中的值要怎么做呢?

還需要自己寫個讀取屬性文件的工具類嗎?完全不要,我們可以通過各種方式來讀取里面的值。

當然寫工具類也是一種方式,只是太麻煩了,既然Spring Boot中有封裝好的實現,為什么不用。

Environment方式讀取

框架中有一個org.springframework.core.env.Environment類,可以讀取application.properties中配置的值。

用法如下,我們可以看到直接將Environment注入進來,然后就可以使用getProperty方法來獲取配置的值了,參數是配置的名稱。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@RestController
public class ConfigController {
 
  @Autowired
  private Environment env;
 
  /**
   * 通過配置的key獲取value<br>
   * {key:.+}是為了解決通過url參數訪問的時候小數點丟失的問題
   * @param key
   * @return
   */
  @RequestMapping("/config/{key:.+}")
  Object getConfig(@PathVariable String key) {
    return env.getProperty(key);
  }
 
}

我們獲取下之前配置的tomcat端口,http://localhost/spring-boot/config/server.port可以看到輸出的結果正是你配置的值。

@Value注解方式讀取

用法如下,通過注解的方式將要讀取的值映射到這個字段上面,然后就可以直接使用了。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@RestController
public class ConfigController {
 
  /**
   * 讀取application.properties中的配置值
   */
  @Value("${server.context-path}")
  private String contextPath;
 
  @RequestMapping("/config/contextpath")
  Object getConfigContextPath() {
    return contextPath;
  }
 
}

獲取contextPath http://localhost/spring-boot/config/contextpath

自定義配置文件讀取方式

系統自帶的application.properties是配置一些框架相關的參數,當我們有一些關于業務方面的配置,如果配置在application.properties中就有點不合適了,這個時候就需要自定義配置文件了。

在沒用Spring Boot之前也是建個屬性文件,然后里面配置好值,用工具類去讀取

當然也可以用Spring提供的PropertiesFactoryBean去讀取,現在讀取就更簡單了

這邊可以直接將配置信息映射成實體類,方便使用,首先定義個配置實體類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@ConfigurationProperties(locations = "classpath:config.properties", prefix = "config")
@Component
public class Config {
  @NotEmpty
  private String ip;
  private int port;
 
  public String getIp() {
    return ip;
  }
  public void setIp(String ip) {
    this.ip = ip;
  }
  public int getPort() {
    return port;
  }
  public void setPort(int port) {
    this.port = port;
  }
}

加上@Component和@ConfigurationProperties注解

@ConfigurationProperties中的locations用來指定你配置文件所在的路徑

@ConfigurationProperties中的prefix用來指定你配置名稱的前綴,如config.ip, config就是你上面定義的前綴

@ConfigurationProperties注解用的特別多,在很多starter包中都使用到了,比

如說mongodb的配置類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@ConfigurationProperties(prefix = "spring.data.mongodb")
public class MongoProperties {
  /**
   * Default port used when the configured port is {@code null}.
   */
  public static final int DEFAULT_PORT = 27017;
  /**
   * Mongo server host.
   */
  private String host;
  /**
   * Mongo server port.
   */
  private Integer port = null;
  // ....
}

這邊在ip字段上還加了個@NotEmpty注解來防止忘記配置值了,如果你沒配置ip的值,那么在啟動的程序的時候框架將提示你

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
***************************
APPLICATION FAILED TO START
***************************
Description:
Binding to target com.cxytiandi.config.Config@2af616d3 failed:
  Property: config.ip
  Value: null
  Reason: 不能為空
Action:
Update your application's configuration
然后我們創建個config.properties放在classpath下
 
config.ip=192.168.1.1
config.port=8080
使用就直接注入Config類就行了
 
@RestController
public class ConfigController {
 
  @Autowired
  private Config config;
 
  @RequestMapping("/config")
  Object queryConfig() {
    return config;
  }
}

這邊通過地址獲取下配置信息:http://localhost/spring-boot/config 可以看到結果

{"ip":"192.168.1.1","port":8080}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.51cto.com/14888386/2516387

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产福利电影一区 | 欧美日韩中文在线 | 欧美日韩亚洲国产精品 | 欧美喷水 | 日韩一区二区三区在线视频 | 国产精品香蕉在线观看 | 午夜视频在线 | 特黄特色大片在线观看视频网站 | 欧洲一区在线 | 亚洲三区视频 | 亚洲激情av | 国产日产欧产美韩av | 日韩精品一区二区在线观看 | 天天天操操操 | 操久久 | 欧美专区在线观看 | 欧美激情一区二区三级高清视频 | 亚洲一区在线观看视频 | 精品久久久久久久久久久 | 免费一看一级毛片 | 涩涩视频观看 | 中文字幕综合 | 精品久久久久一区二区国产 | 福利一区二区 | 激情欧美一区二区免费视频 | 特一级毛片 | 亚洲综合二区 | 不用播放器看av | 国产成人精品网站 | 欧美日韩在线看 | 亚洲成人av电影 | 亚洲怡红院在线观看 | 中文字幕乱码一区二区三区 | 亚洲 欧美 国产 制服 动漫 | 久久久中文字幕 | 欧美在线操 | 国产一区二区精品在线观看 | 免费观看aaa| 日本黄色录像 | 亚洲一区视频 | 黄色影院在线观看 |