Java 使用PropertySource的每个环境的Spring引导加载配置

Java 使用PropertySource的每个环境的Spring引导加载配置,java,spring-boot,spring-boot-configuration,Java,Spring Boot,Spring Boot Configuration,我正在尝试向几个微服务添加授权。鉴于所有服务共享类似的授权过程,我想将逻辑提取到共享库中 我设法创建了库,但我意识到所有配置都需要在调用库的microservice中的application.yml文件中设置。不过,我不想在服务层公开一些配置 经过一些搜索,我发现我可以在我的库的配置类中设置@PropertySource(“library.properties”),以强制从库中指定的.properties文件读取属性 现在的问题是,我想为不同的环境设置不同的值,例如,测试和生产的授权URL将不同

我正在尝试向几个微服务添加授权。鉴于所有服务共享类似的授权过程,我想将逻辑提取到共享库中

我设法创建了库,但我意识到所有配置都需要在调用库的microservice中的
application.yml
文件中设置。不过,我不想在服务层公开一些配置

经过一些搜索,我发现我可以在我的库的配置类中设置
@PropertySource(“library.properties”)
,以强制从库中指定的
.properties
文件读取属性


现在的问题是,我想为不同的环境设置不同的值,例如,测试和生产的授权URL将不同。如何配置文件,使配置类根据活动配置文件读取相同的属性值(例如,environment=test/staging/production)?

您的资源文件夹中可以有多个属性文件,如“application environment.yml”。Spring framework根据活动配置文件选择正确的属性文件。
例如,如果您定义了一个“staging”环境并拥有一个staging概要文件,那么您的属性文件应该命名为application staging.yml.

作为记录,我最终在Java库repo中定义了
application-{env}.properties
文件,并且使用它的服务可以正确地提取它。