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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM