本文共 807 字,大约阅读时间需要 2 分钟。
1.当springboot项目里同时有application.yml配置文件和application.properties文件时,用@Component和@ConfigurationProperties(prefix = “person”)注解时,究竟读取哪一个?
答: 正常的情况是先加载yml,接下来加载properties文件。如果相同的配置存在于两个文件中。最后会使用properties中的配置。最后读取的优先集最高。 两个配置文件中的端口号不一样会读取properties中的端口号。1.properties文件中激活其他配置文件
spring.profiles.active=dev (配置文件名称为:application-().properties)2.yml文件中激活其他配置文件
spring: profiles: active: prod
@PropertySource(value ={“classpath:person.properties”})
为什么不用@ConfigurationProperties(prefix = “person”)配置文件呢? 因为这个注解默认是从全局配置文件中获取值(application.properties或者application.yml文件),假如所有的配置文件都写在application.properties或者application.yml文件中,文件太大了,所以要分开写 @PropertySource和@ImportSource区别: @PropertySource加载指定配置文件; @ImportSource:导入Spring的配置文件(beans.xml),让配置文件的内容生效, 标记在主配置类上springboot采用@Bean注解来添加组件
转载地址:http://qqthn.baihongyu.com/