2 回答

TA贡献1951条经验 获得超3个赞
我相信你走错了路。
弹簧依赖注入很棒,但这并不意味着你永远不会在正确编写的Spring Boot应用程序中找到调用。new
在这种情况下,呼叫是正确的做法。池中的每个实例都应在启动时获得自己的 / 实例。new
Executor
Runnable
Callable
这适用于任何方法作用域变量:最好在方法作用域中实例化它,并让垃圾回收器在退出方法时清理它。在这种情况下,Spring没有理由对豆类生命周期负责。
当您尝试共享实例时,您会走得太远,特别是如果它们具有状态。Runnable

TA贡献1804条经验 获得超3个赞
即使问题已经结束,也偶然发现了另一个解决方案,即 - @Lookup,它符合任务:实体:
@Component
@Scope("prototype")
public class Proto {
private static int counter;
public Proto() {
System.out.println("count: "+counter++);
}
}
服务:
@Service
public class ProtoService {
@Lookup
public Proto getProto() {
return null;
}
}
和测试:
@Service
public class LookupWorks {
@Autowired
private ProtoService serv;
@PostConstruct
private void test() {
System.out.println(">>>>>>>>>>>>>>");
serv.getProto();
serv.getProto();
serv.getProto();
serv.getProto();
serv.getProto();
System.out.println(">>>>>>>>>>>>>>");
}
}
输出:
>>>>>>>>>>>>>>
count: 0
count: 1
count: 2
count: 3
count: 4
>>>>>>>>>>>>>>
添加回答
举报