我的容器 XML 配置:
<rabbit:listener-container
connection-factory="myConnectionFactory"
acknowledge="none"
concurrency="10"
requeue-rejected="false">
<rabbit:listener ref="myListener" queues="myQueue"/>
</rabbit:listener-container>
并且myListener
只是一个类
@Component("myListener")
public class MyListener implements MessageListener {
@Autowired
SomeDependency dependency;
....
}
我已经concurrency="10"
在我的 XML 中指定了。这究竟是什么意思?
我找到了一些文档。他们没有那么有帮助,说明:
指定要创建的并发使用者的数量。默认值为 1。
我感兴趣的是是否MyListener
必须是线程安全的,即
- 是否有许多线程创建了许多实例或使用了单个实例?
- 我可以访问没有同步的实例字段吗?
- 是
SomeDependency dependency
实例化一次还是为每个线程/实例实例化? - 是否
dependency
需要线程安全?