spring boot 不同环境读取不同的配置文件(yml)

配置类:

package com.wjj.application.facade.kangmei;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * 康美配置
 * @author hank
 */
@Component
@PropertySource(value = {
		// 以下为读取classpath下的配置
		"classpath:config/kangmei.yml",
		"classpath:config/kangmei-${spring.profiles.active:${env:prod}}.yml",
		// 以下为读取jar包目录下的配置
		"file:config/kangmei.yml",
		"file:config/kangmei-${spring.profiles.active:${env:prod}}.yml"
}, ignoreResourceNotFound = true)
@ConfigurationProperties(prefix = "kangmei")
@Data
@Lazy
public class KangMeiConfig{

	/**
	 * 用户名
	 */
	@Value("${companyNum}")
	private String companyNum;
	/**
	 * 密码
	 */
	@Value("${password}")
	private String password;

	/**
	 * 地址
	 */
	@Value("${wsdlUrl}")
	private String wsdlUrl;
	/**
	 * 康美物流url
	 */
	@Value("${logisticsUrl}")
	private String logisticsUrl;
}

下面这段表示,默认加载config下的kangmei.yml,再加载指定环境的kangmei-环境.yml(覆盖之前的值)

@PropertySource(value = {"classpath:config/kangmei.yml", "classpath:config/kangmei-${spring.profiles.active:${env:prod}}.yml"}, ignoreResourceNotFound = true)

yml 通用配置(如果没有单独环境的配置就会取这个) kangmei.yml:

kangmei:
  companyNum: xxxx
  password: xxxx
  wsdlUrl: xxxxx
  logisticsUrl: xxxx

生成环境yml配置(覆盖通用配置) kangmei-prod.yml:

kangmei:
  wsdlUrl: 生产地址
  logisticsUrl: 生产地址

 


版权声明:本文为huang007guo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。