Контроллер:
Код: Выделить всё
@RestController
public class DITestRestController {
private Language language;
@Autowired
public DITestRestController(@Qualifier("haskell") Language language) {
this.language = language;
}
@GetMapping("/lang")
public String getLanguage() {
return language.name();
}
}
Код: Выделить всё
package com.testprojects.ditestproject;
import org.springframework.stereotype.Component;
@Component
public class C implements Language {
@Override
public String name() {
return "C";
}
}
Код: Выделить всё
package com.testprojects.ditestproject;
import org.springframework.stereotype.Component;
@Component
public class Haskell implements Language {
@Override
public String name() {
return "Haskell";
}
}
Код: Выделить всё
package com.testprojects.ditestproject;
import org.springframework.stereotype.Component;
@Component
public class haskell implements Language {
@Override
public String name() {
return "haskell";
}
}
Код: Выделить всё
Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'haskell' for bean class [com.testprojects.ditestproject.haskell] conflicts with existing, non-compatible bean definition of same name and class [com.testprojects.ditestproject.Haskell]
Код: Выделить всё
@Qualifier("myClass")
Подробнее здесь: https://stackoverflow.com/questions/785 ... he-qualifi