3 回答
TA贡献1796条经验 获得超10个赞
您正在使用@Configuration带注释的类。也许您可以为每个配置文件提供一个。下面是一个示例:
@Configuration
@Profile("profileA")
@PropertySource({"classpath:application-profileA.properties"})
public class ConfigurationProfileA{
@Value("${target.url}")
String url;
@Value("${target.usr}")
String usr;
@Value("${target.key}")
String key;
@Bean
public TargetConnector connector() {
return new TargetConnector(url, usr, key);
}
}
对配置文件B执行相同的操作(也许您可以更好地构建它,但这里的关键点是注释@Profile(“”)和@PropertySource(“”))
一旦你有了配置类,Spring将使用你想要的配置类,只需填写 -spring.profiles.active=profileA(或你在@Profile(“)注释中编写的配置文件的名称)
TA贡献1817条经验 获得超14个赞
为了使用特定配置文件运行,您可以使用例如选项运行-spring.profiles.active=dev
如果您不使用配置文件运行,它将加载您似乎没有的默认配置文件。application.properties
此外,建议始终具有应用程序.properties,并在其中放入公共属性和将在其他属性文件中重写的默认值。
另一个错误是如何分配带有注释的属性,您需要使用@Value
@Value("${PROPERTY_FROM_PROPERTIES_FILE}")
添加回答
举报