我有一个基于Spring的Web应用程序,需要通过JMX连接从ActiveMQ获取数据。
我正在使用MBeanServerConnectionFactoryBean
(在Spring中)从ActiveMQ获取各种MBean属性。
我只有一个MBeanServerConnectionFactoryBean
作为成员变量,用于获取数据。如果多个请求/线程同时出现会有任何问题吗?会有竞争条件吗?
请建议保持代码线程安全的最佳方法。
答案 0 :(得分:1)
Spring FactoryBean
对象不能直接在您的代码中使用,它们应该在您的Spring配置中使用。因此,它们被设计为仅执行一次和一次。
如果你想使用它们,包括MBeanServerConnectionFactoryBean
,那么你需要创建它们,配置它们,使用它们并在每次想要获取它们创建的对象时丢弃它们。它们绝对是不线程安全的。
更好的是,按照设计的目的去做,并在Spring配置中使用它们。