-
[에러]Parameter N of method A in B Class required a single bean, but M were found웹개발/Micro Service Architecture 2019. 4. 15. 16:18
원인
어떤 클래스의 어떤 메소드중 몇번째 파라미터에서 빈이 1개가 필요한데 여러개가 발견되었다고 하는 메세지.
보통 코드를 잘못짜서 메소드가 어떤 인스턴스를 써야할지 모호함이 발생할때 나는 에러이다.
@Autowired를 해놓고 또 파라미터로 받고 있다든지...
내가 코드에서 그렇다면 수정하면될텐데 스프링 프레임워크의 메소드에서 내가 수정할수 있는 빈과 그렇지 않은 빈 중에 모호함이 발생해서 나는 에러였다.
에러메세지
*************************** APPLICATION FAILED TO START *************************** Description: Parameter 1 of method BindingHandlerAdvise in org.springframework.cloud.stream.config.BindingServiceConfiguration required a single bean, but 2 were found: - getValidator: defined by method 'getValidator' in class path resource [com/uracle/hecate/auth/core/configuration/MessageSourceConfig.class] - mvcValidator: defined by method 'mvcValidator' in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class] 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
해결
이름도 완전 다른데 Validator부분이 비슷해서 모호하다는건지.. 왜인지는 정확히 모르겠지만, 내가 수정할수 있는 빈을 갖다쓰면 안될 상황이기에 그걸 쓰지 말라고 조치해줘야한다. @lazy도 있고 뭐 @Primary도 있고. 근데 @Primary를 붙여버리면 이걸 갖다쓰라는 거니까 의도랑 반대가 된다.
그래서 내가 수정할 수 있는 빈을 구체화 해줬다.
빈 네임을 "validator"라고 지었다.
그랬더니 모호함이 제거 되었다.
@Configuration public class MessageSourceConfig { @Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); //messageSource.setBasename("classpath:message"); messageSource.setBasename("http://localhost:8999/message.properties"); messageSource.setDefaultEncoding("UTF-8"); return messageSource; } @Bean(name="validator") public LocalValidatorFactoryBean getValidator() { LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean(); bean.setValidationMessageSource(messageSource()); return bean; } }
'웹개발 > Micro Service Architecture' 카테고리의 다른 글
Config Server Git 저장소 설정파일 수정할때마다 Config Client에게 전달하기 / Dynamic Configuration (0) 2019.04.18 스프링부트로 간단 Micro Service 구축하기 (0) 2019.03.21 댓글