1. 程式人生 > >Spring-boot中@ConfigurationProperties,@Value,@PropertySource

Spring-boot中@ConfigurationProperties,@Value,@PropertySource

1.利用@ConfigurationProperties獲取配置的值,@ConfigurationProperties是springboot提供的基於安全型別的配置放置。

    application.properties

spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.maxIdle=10
spring.redis.maxActive=20

RedisConfig.java

 
@Configuration
@ConfigurationProperties(prefix 
= "spring.redis"//會在application,properties,查詢spring.redis開頭的配置 public class RedisConfig { //必須有get set放入,否則值注入不進去 //匹配   spring.redis.host public String host; //匹配   spring.redis.port public int port; public String getHost() { return host; } public
void setHost(String host) { this.host = host; } public int getPort() { return port; } public void setPort(int port) { this.port = port; }

2.利用@Value獲取值,在springboot中如果不配置@PropertySource(value="classpath:redis.properties")(配置檔案路徑),預設是從application.properties中獲取值,你也可以配置額外的@PropertySource,如下

 
@PropertySource(value="classpath:redis.properties")
//@PropertySource(value="file:/home/config/redis.properties")
 
 
 
public class RedisConfig {
 
         //從application.properties從獲取
 
@Value("${spring.redis.host}"public String host;
 
        //從application.properties從獲取
 
@Value("${spring.redis.port}")
public int port;
 
        //從redis中獲取.properties從獲取
 
        @Value("${name}")
public String name;
 
  }

 

@ConfigurationProperties

為springboot 專用的屬性注入屬性  檔名必須是application.properties/applicaiton.yml

@Value,

value 屬性 處理能支援spel表示式以外 全部不如 ConfigurationProperties

@PropertySource

需要指定(classpath:xxxx.properties)載入指定的配置檔案

 

 


作者:盲目的拾荒者
來源:CSDN
原文:https://blog.csdn.net/niugang0920/article/details/80612070