build 시 해당 에러가 발생했다.![]![]
~~~
required a single bean, but 2 were found
~~~
Action:
Consider marking one of the beans as @Primary,
updating the consumer to accept multiple beans,
or using @Qualifier to identify the bean that should be consumed
@RequiredArgsConstructor Annotation으로 의존성을 주입할 때,
위와 같이 같은 타입의 빈이 여러개인 경우 오류와 함께 해결을 위한 방법으로 3가지를 제시한다.
@Primary Annotation을 활용하면 BookRepository를 상속받은 class들 중, 최우선으로 의존성을 부여받게 된다.
@Getter
@Setter
@Configuration
@ConfigurationProperties(prefix = "data-es")
@Primary
public class DataElasticSearchProperties extends ElasticSearchProperties {
Indecies indecies;
public String getKmeansIndexName() {
return ofNullable(this.indecies)
.map(Indecies::getKmeansIndexName)
.orElse("index");
}
@Getter
@Setter
public static class Indecies {
private String kmeansIndexName;
}
}
@Slf4j
@ComponentScan
@EnableConfigurationProperties(DataElasticSearchProperties.class)
@Configuration
@RequiredArgsConstructor
public class DataElasticSearchConfiguration extends AbstractElasticsearchConfiguration {
@Qualifier("dataElasticSearchProperties")
private final DataElasticSearchProperties dataElasticSearchProperties;
}
@Slf4j
@ComponentScan
@EnableConfigurationProperties(DataElasticSearchProperties.class)
@Configuration
@RequiredArgsConstructor
public class DataElasticSearchConfiguration extends AbstractElasticsearchConfiguration {
private final List<DataElasticSearchProperties> dataElasticSearchProperties;
}
나의 경우에는 1번의 방법으로 처리했다 !!