1. public static final ThreadLocal session = new ThreadLocal();
2. public static Session currentSession() throws HibernateException {
3. Session s=(Session)session.get();
4. //打开一个新的session,如果这个线程还不存在的话
5. if(s==null) {
6. s=sessionFactory.openSession();
7. session.set(s);
8. }
9. return s;
10. }
通过一个ThreadLocal对象为每个单独的线程保存并使用一份自己的Session。这就ThreadLocal所起到的作用,为每一个线程保存一份独立的变量副本。在本例中通过ThreadLocal实现了并发访问并使用了单例模式。
2. public static Session currentSession() throws HibernateException {
3. Session s=(Session)session.get();
4. //打开一个新的session,如果这个线程还不存在的话
5. if(s==null) {
6. s=sessionFactory.openSession();
7. session.set(s);
8. }
9. return s;
10. }
通过一个ThreadLocal对象为每个单独的线程保存并使用一份自己的Session。这就ThreadLocal所起到的作用,为每一个线程保存一份独立的变量副本。在本例中通过ThreadLocal实现了并发访问并使用了单例模式。