我有一个Servlet,它调用一些业务方法,并且需要为每个请求生成一个唯一的事务id,我们需要将这个事务id传递给业务方法。
一种解决方案是将此事务ID作为参数传递给所有业务方法。但这不是一个好的解决方案,因为代码是多余的和不必要的。
答案 0 :(得分:0)
您可以将其添加为servlet中的线程局部变量,并在其他任何位置访问它。每个传入的请求都会产生一个新的线程,并且线程局部变量将仅仅是该线程的本地变量
答案 1 :(得分:0)
我已经通过使用ThreadLocal解决了这个问题。
线程本地可以被视为访问范围,如请求范围或会话范围。这是一个线程范围。您可以在Thread Local中设置任何对象,该对象将是访问此对象的特定线程的全局和本地对象。我已提及this article 来解决此问题。