gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:58:49 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 默认情况下是 Singletons,因此可以通过另外一个注释来更改 - @Scope("prototype") .

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

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

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