我有一个组件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