如何在运行时切换Spring配置文件?

Yuv*_*val 1 java spring spring-boot

目前,我通过@Value注入我的应用程序属性,并且效果很好。现在,我希望我的应用程序支持多个配置,这意味着其@Value每次应返回不同的值。

我阅读了有关Spring配置文件的内容,但我不明白如何在运行时切换配置文件。可能吗?

我真正需要的是在服务器启动时加载所有配置,并在请求到达时动态选择其配置文件-每个请求都应具有一组配置。

And*_*eas 7

在运行时切换Spring配置文件不是一个好习惯。Spring概要文件旨在用作在不同环境中管理应用程序的一种方式。

Spring Profiles提供了一种分离应用程序配置的各部分并使之仅在某些环境中可用的方法

如果您的变量需要针对每个传入请求进行动态更改,请考虑以下几个选项:

  • 将值存储在数据库中,在启动时进行缓存,并根据传入的请求参数/主体进行获取
  • 从传入的请求参数/主体推断值
  • 将所有可能的值存储在属性文件中,在启动时加载,然后根据传入的请求参数/主体进行选择
  • 将所有可能的值存储为枚举/常量,并在传入的请求参数/正文中选择bsaed

  • 如果我想使用与 -Dspring.profiles.active 不同的名称通过命令行参数传递配置文件怎么办? (2认同)