gpt4 book ai didi

java - 将 bean 添加到 Autowiring 列表

转载 作者:行者123 更新时间:2023-12-01 18:41:06 26 4
gpt4 key购买 nike

我有一个由 Autowiring 创建的动物列表。

public class UserManagerConfig {
@Bean
public Dog getDog(){
return new Dog("Lucky");
}

@Bean Cat getCat(){
return new Cat("Charles");
}
}

public class Zoo {

@Autowired
private List<Animal> animals;
}

我想添加一个 getDogs() ,将更多的狗附加到 Autowiring 列表中:

    @Bean
public List<Animal> getDogs(){
return new ArrayList<>(Arrays.asList(new Dog("Ray"), new Dog("Soos")));
}

但是Spring在 Autowiring 时并没有选择getDogs(),它会在getDogs()之前创建一个配置的bean列表(返回Animal而不是List)。

有没有办法告诉spring添加这个列表?

最佳答案

我能够通过将列表 Autowiring 到 getdogs 来使 spring 使用 getDogs(),如下所示:

public class UserManagerConfig {
@Bean
public Dog getDog(){
return new Dog("Lucky");
}

@Bean Cat getCat(){
return new Cat("Charles");
}

@Bean
public List<Animal> getDogs(List<Animal> animals){
animals.addAll(new ArrayList<>(Arrays.asList(new Dog("ray"), new Dog("soos"))));
return animals;
}
}

然后使用 @Qualifier :

public class Zoo {

@Autowired
@Qualifier("getDogs")
private List<Animal> animals;
}

有更好的解决方案吗?

关于java - 将 bean 添加到 Autowiring 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59931290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com