Spring MVC如何解析子类注入

时间:2015-03-18 07:40:25

标签: spring-mvc

我想了解Spring MVC在自动装配时如何解析子类注入。

例如:

class Person
{
      @autowired    
      private Customer cust;
}

interface Customer{}

class Customer1 implements Customer{}

class Customer2 implements Customer{}

现在Spring将如何知道要在Person中注入哪个类。

如果这是一个重复的问题,请原谅

1 个答案:

答案 0 :(得分:1)

在属性上设置 @Autowired 时,它将使用autowire byType来解析协作bean。因此,在您所描述的情况下,它将产生多个限定bean的冲突。

要解决此问题,您应该使用@Qualifier注释,并使用 @Component 或其他适当的注释构造型来命名您的bean

class Person
{
      @Qualifier("customer1")
      @Autowired    
      private Customer cust;
}

interface Customer{}

@Component("customer1")
class Customer1 implements Customer{}

@Component("customer2")
class Customer2 implements Customer{}