import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@ConfigurationProperties
@PropertySource("classpath:env/${spring.profiles.active}/constant.properties")
@Component("constantProperties")
public class ConstantProperties {
/** etl接口的地址 */
public static String ELT_ENGINE_TRIGGER_URL;
public static String PLATFORM_SYN_URL;
public static String PLATFORM_PARAM_SYN_URL;
public static String SYN_GAME_RATE_FILE_PATH;
public static String SYN_GAME_RATE_SHELL;
public static boolean IZ_PUBLISHED;
// set注入把 eltEngineTriggerUrl 属性注入,然后赋值给我们定义的静态变量,完成了配置文件赋值给静态常量
// set 方法一定不能是static的,不然不能注入
// 而且这个变量名字和properties 文件中的对应,经过测试发现不区分大小写、并会忽略下划线_符号
public void setEltEngineTriggerUrl(String eltEngineTriggerUrl) {
ConstantProperties.ELT_ENGINE_TRIGGER_URL = eltEngineTriggerUrl;
}
public void setPLATFORM_SYN_URL(String platform_syn_url) {
ConstantProperties.PLATFORM_SYN_URL = platform_syn_url;
}
public void setPlatform_param_syn_url(String platform_param_syn_url) {
ConstantProperties.PLATFORM_PARAM_SYN_URL = platform_param_syn_url;
}
public void setSYN_GAME_RATE_FILE_PATH(String sYN_GAME_RATE_FILE_PATH) {
SYN_GAME_RATE_FILE_PATH = sYN_GAME_RATE_FILE_PATH;
}
public void setSYN_GAME_RATE_SHELL(String sYN_GAME_RATE_SHELL) {
SYN_GAME_RATE_SHELL = sYN_GAME_RATE_SHELL;
}
public void setIZ_PUBLISHED(String iZ_PUBLISHED) {
IZ_PUBLISHED = Boolean.parseBoolean(iZ_PUBLISHED);
}
}
会根据不同的 spring.profiles.active 获取不同的properties文件,然后其他地方就可以像 平时那样 ConstantProperties.PLATFORM_SYN_URL 用了
1、set注入把 eltEngineTriggerUrl 属性注入,然后赋值给我们定义的静态变量,完成了配置文件赋值给静态常量
2、set 方法一定不能是static的,不然不能注入
3、而且这个变量名字和properties 文件中的对应,经过测试发现不区分大小写、并会忽略下划线_符号