Spring 怎么注入 Java 集合类型?

在Spring中,可以使用@Autowired@Qualifier注解来注入Java集合类型,例如List,Set和Map。当你有多个相同类型的Bean需要注入到一个集合中时,这种方式非常有用。

首先,你需要为你的每一个Bean定义一个唯一的@Qualifier

@Service
@Qualifier("serviceOne")
public class ServiceOne implements ServiceInterface {
    //...
}

@Service
@Qualifier("serviceTwo")
public class ServiceTwo implements ServiceInterface {
    //...
}

@Service
@Qualifier("serviceThree")
public class ServiceThree implements ServiceInterface {
    //...
}

然后,你可以使用@Autowired@Qualifier注解来注入这些Bean到一个集合中:

public class SomeClientClass {

    private List<ServiceInterface> services;

    @Autowired
    public void setServices(List<@Qualifier({"serviceOne","serviceTwo","serviceThree"}) ServiceInterface> services) {
        this.services = services;
    }

    //...
}

在这个例子中,setServices方法上的@Autowired注解告诉Spring我们想要注入一个ServiceInterface类型的List。然后,@Qualifier注解指定了我们想要注入哪些具体的Bean。

注意,@Qualifier注解接受一个数组作为参数,这个数组中的每一个元素都是我们想要注入的Bean的@Qualifier的值。

这样,Spring就会将所有指定的Bean注入到这个List中。你可以在你的代码中迭代这个List,然后对每一个Bean进行操作。这种方式提供了一种灵活的方式来处理多个相同类型的Bean。

发表评论

后才能评论