我有一個組件EmbeddedRedis
,它取決於從應用程序屬性文件中分析的配置對象RedisConfig
。有不同的屬性文件,對應於可運行的可能的應用程序配置文件。因此,在配置文件master
中運行時,組件EmbeddedRedis
將根據配置文件master
進行配置。Spring Boot - 使用不同配置文件的Autowire組件
在測試類中,應該設置本地Redis羣集,我還需要根據所有其他配置文件配置Redis
對象。我在下面使用@Qualifier
註釋草繪了我的想法,但沒有提供所需的結果。
@Autowired @Qualifier("dev-cluster-master")
private Redis embeddedRedisMaster;
@Autowired @Qualifier("dev-cluster-slave-001")
private Redis embeddedRedisSlave1;
@Autowired @Qualifier("dev-cluster-slave-002")
private Redis embeddedRedisSlave2;
如何在Spring Boot中歸檔所需的結果?如果這不能直接工作,那麼獲取從不同屬性文件解析的上述配置對象是否也足夠了。
@Component
@ConfigurationProperties(prefix = "spring.redis")
public class RedisConfig {
....
}
在此先感謝!
嗨Afridi, 感謝您的答案,但我不太明白。代碼片段甚至不編譯,因爲@Profile註釋不適用於字段。 – twiechert
對不起,@Profile(「master」)註釋只能用於不帶字段的方法。所以這個註釋應該被添加到Redis的bean定義的方法中。那麼你可以發佈你的每個Redis配置的bean定義嗎?在春季之後會根據活動配置文件初始化特定bean – Afridi
檢查我的更新回答 – Afridi