消息Bean中的JAXB反编组程序



我正在使用消息驱动bean。它们是池的,所以有很多实例。我需要在onMessage方法中使用JAXB解组器。我想要的是在init方法中创建解组程序实例,例如:

public class MyMDB implemetns MessageListener {
    private Unmarshaller unmarshaller;
    @PostConstruct
    public void init() {
        unmarshaller = JAXBContext.newInstance(...)
    }
    public void onMessage(Message message) {
        // use unmarshaller
    }       
}
在这种情况下,我应该为并发性问题操心吗?据我所知,解组器不是线程安全的。我应该在这里使用ThreadLocal吗?

Unmadshaller的创建是轻的。您可以保留对线程安全JAXBContext的引用,然后在每次需要时创建一个新的Unmarshaller

最新更新