我有一条消息呼叫将处理从MyClass
开始的有效负载。在负载测试中,我看到第一个负载被下一个负载覆盖。我所有的课程都由@Autowired
春季管理。显然,bean作用域是单例的,这就是为什么发生这种情况。但是我不想使用new
运算符,并希望它是spring注释配置的。有什么办法可以解决丢失数据的问题?
更新
我的配置如下:
Public class MyClass {
...
@Autowired
public MyService myService;
...
}
@Component
@Scope(value="prototype", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class MyService{
@Autowired
public Aone one;
@Autowired
public Atwo two;
...
}
@Component
@Scope(value="prototype")
public class Aone {
}
从网络上获得建议后,我正在尝试此配置。对于我进入MyClass
的每个呼叫,将创建一个MyService
的新实例,然后从那里开始,所有其他实例,例如Aone
/ Atwo
都应该有一个新实例,此配置是否会可以吗?