두 개의 서비스가있는 웹 애플리케이션 (webapp1)이 있는데 각 서비스는 인터페이스를 상속받습니다. 각 서비스에는 ID가 @SERVICE 인 주석이 있습니다. (service1 및 service2). 은 wervice1에 대한 예를 들어, 내가이있어 :Spring Mvc, Bean을 오버라이드 (override)하는 방법 annotation
@SERVICE("service1")
각 서비스는 @AUTOWIRED
및 @QUALIFIER
주석을 사용하여 컨트롤러에 주입한다. 이제 webapp1에 오버레이로 만든 두 번째 웹 응용 프로그램 (webapp2)이 생겼습니다. webapp2에서 service1을 덮어 쓰려고합니다. 나는이 작업을 수행하려고 : 내가 동일한 ID (서비스 1과 wervice 재정의 서비스 1) 두 개의 콩을 가지고 있기 때문에 오류가있어
@PRIMARY
@SERVICE("service1")
.
오류 메시지는 다음과 같습니다 org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'service1' for bean class [fr.yyy.oav.xxx.service.YyyService1] conflicts with existing, non-compatible bean definition of same name and class [fr.harvest.oav.xxx.service.XxxService1]
나는 봄이 클래스를 사용하는 것이 금지 될 대신 ID의 이름을 사용할 수 있도록 허용 주석 @Bean을 사용했습니다.
xml 정의를 사용하지 않고 service1을 재정의 할 수있는 방법이 있습니까?
감사
지정한 빈 태그 .Hope에autowire="bytype"
를 사용하는
전체 오류 메시지를 표시 할 수 있습니까? –
유형별로 빈을 autowire (해결)하십시오. 그러므로 당신은 이드가 필요 없습니다. – naXa