springBoot 配置文件 yml、properties

@Value获取值和@ConfigurationProperties获取值比较

 
@ConfigurationProperties
@Value
功能
批量注入配置文件中的属性
一个个指定
松散绑定(松散语法)
支持
不支持
SpEL
不支持
支持
JSR303数据校验
支持
不支持
复杂类型封装
支持
不支持
@Value
    @Value("${kafkaConfig.topic}")
 
 
 
@ConfigurationProperties
 
@Component
@ConfigurationProperties(prefix="configInfo")
public class InfoYml {
    private static String fileServiceUp;
 
public static String getConfInfo(String str){
if(str.equals("fileServiceUp")){
return getFileServiceUp();
}
}
 
get()、set() 方法
}
 
 
application.yml 文件
#### 项目的相关配置信息
configInfo:
##文件服务器dev
 
指定配置文件
@PropertySource(value = {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix="configInfo")
 
配置文件yml还是properties他们都能获取到值;
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;
 

激活指定profile

配置文件有多种 test 、prod、dev (例: application-dev.yml
 
方法一    在配置文件中 spring.profiles.active=dev                                                    (优先级最低
方法二    启动jar时, java -jar 【文件名.jar】 --spring.profiles.active=dev
其他方法  在配置tomcat 或者 JVM时  加参数  --spring.profiles.active=dev    (优先级最高)
 
配置文件可放置位置
–file:./config/                 优先级高   应该是 src\config
–file:./
–classpath:/config/                        即jar中的WEB-INF/classes/config 代码中的 src\main\resources
–classpath:/                  优先级低
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
 
在后期运维时,可以通过 spring.config.location 参数指定外部配置文件(优先级高)
java -jar 【 jar包 】 --spring.config.location=【配置文件路径】
 
 
两种配置文件 优先级
application.properties 和  application.yml   如果两个文件的配置项、路径一致,那么从最后的结果来说,yml内容会被覆盖。看博文是说yml先加载(具体原因未纠结)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值