gpt4 book ai didi

java - 如何在Struts 2中将对象放入ThreadLocal中?

转载 作者:行者123 更新时间:2023-12-01 14:52:16 25 4
gpt4 key购买 nike

我试图在每个请求上打开 Hibernate Session 并在最后关闭它。

This看起来它可以工作,但我现在知道我应该如何将我的 Session 对象放入 ThreadLocal 中,并且答案没有解释这一点。

有没有 Struts2 特定的方法来做到这一点?

最佳答案

您可以在 Struts2 Servlet 前面添加一个 HttpFilter。在过滤器中:

public class SessionProviderFilter implements Filter {
private static ThreadLocal<Session> sessionStore = new ThreadLocal<Session>();


public void doFilter(...) {
Session session = ... // get the session
sessionStore.set(session);
chain.doFilter(...);
sessionStore.set(null);
}

public static Session getCurrentSession() {
return sessionStore.get();
}
}

现在,从任何代码中,要获取当前的 hibernate session ,您可以调用 SessionProviderFilter.getCurrentSession()。

关于java - 如何在Struts 2中将对象放入ThreadLocal中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14715439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com