Spring Boot:如何基于配置文件更改注释的值?

问题描述 投票:0回答:1

我们使用redis作为数据源。但是我们只有一台redis服务器,因此开发和生产环境必须共享该服务器。因此,我希望根据对象的配置文件在对象上使用不同的@RedisHash前缀。我有2个个人资料,dev和prod。

例如,对于对象参与者,我希望它使用@RedisHash('redis.prod_Participant')进行生产,并使用@RedisHash('redis.dev_Participant')进行开发。

所以我将application-prod.yaml文件更改为

redis:
  host: 9.9.9.9
  port: 6379
  password: 1234
  participant_db_name: prod_Participant

但是如何根据配置文件设置@RedisHash的值?我尝试过@RedisHash(@Value("${redis.participant_db_name}")),但是@RedisHash的值必须是String类型而不是Value类型,并且编译器抱怨不兼容。

我也尝试过@RedisHash("${redis.participant_db_name}"),但没有使用prod_Participant,而是使用了文字${redis.participant_db_name}

有没有办法做到这一点?

spring-boot redis annotations environment-variables profile
1个回答
0
投票

您能够解决此问题吗?我正在尝试解决类似的问题,然后

© www.soinside.com 2019 - 2024. All rights reserved.