응용 프로그램의 등록 정보 파일에서 구문 분석 된 구성 객체 RedisConfig
에 따라 구성 요소가 EmbeddedRedis
입니다. 실행할 수있는 가능한 응용 프로그램 프로파일에 해당하는 다른 특성 파일이 있습니다. 따라서 프로필 master
에서 실행하면 구성 요소 EmbeddedRedis
은 master
프로필에 따라 프로비저닝됩니다.스프링 부트 - 다른 프로파일을 사용하는 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;
스프링 부트에서 원하는 결과를 어떻게 보관할 수 있습니까? 그것이 직접 작동하지 않는다면, 다른 속성 파일들로부터 파싱 된 앞서 언급 한 설정 객체들을 얻는 것으로 충분할 것입니다.
@Component
@ConfigurationProperties(prefix = "spring.redis")
public class RedisConfig {
....
}
미리 감사드립니다.
안녕하세요, Afridi, 답변 해 주셔서 감사합니다. @Profile 주석은 필드에 적용 할 수 없기 때문에 코드 스 니펫은 컴파일되지 않습니다. – twiechert
오 죄송합니다. @Profile ("master") 주석은 필드가없는 메소드에만 사용할 수 있습니다. 따라서이 주석은 Redis에 대한 빈 정의의 메소드에 추가되어야한다. 각 Redis 구성에 대한 bean 정의를 게시 할 수 있습니까 ?? 활성화 된 프로파일을 기초로 특정 bean을 초기화 할 것입니다. – Afridi
"업데이트 된 응답을 확인하십시오. – Afridi