gpt4 book ai didi

spring - 如何在 Spring 中获取同一个 bean 的多个实例?

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:52 25 4
gpt4 key购买 nike

默认情况下,Spring Bean 是单例的。我想知道是否有办法获取同一 bean 的多个实例进行处理。

这是我目前所做的事情

    @Configuration
public class ApplicationMain {

@Value("${service.num: not configured}")
private int num;

//more code

@PostConstruct
public void run(){

for (int i = 0; i < num ; i++) {
MyService ser = new MyService(i);
Future<?> tasks = executor.submit(ser);
}

}
}

这是服务类

    public class MyService implements Runnable {

private String name;

public Myservice(int i){

name=String.ValueOf(i);

}
}

我在这里简化了我的用例。我想让 MyService 作为 spring bean 并根据上面的 for 循环中的配置(即 num)获得尽可能多的值?想知道这怎么可能。

谢谢

最佳答案

首先,您必须将 MyService 设为 Spring bean。您可以通过使用 @Component 注释该类来完成此操作。接下来,正如您所说,Spring bean 默认情况下是单例,因此可以通过另一个注释来更改这一点 - @Scope("prototype")

原型(prototype) bean 范围意味着每次您向 Spring 请求该 bean 的实例时,都会创建一个新实例。这适用于 Autowiring ,使用 getBean() 向应用程序上下文询问 bean,或者使用 bean 工厂。

关于spring - 如何在 Spring 中获取同一个 bean 的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55655461/

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