Java Hibernate DAO/SessionFactory使用
在我的应用程序中,我有一个DAOBean,我通过Spring注入了一个Hibernate sessionFactory(配置了c3p0连接池)。我的sessionFactory bean的定义如下:Java Hibernate DAO/SessionFactory使用,java,spring,hibernate,Java,Spring,Hibernate,在我的应用程序中,我有一个DAOBean,我通过Spring注入了一个Hibernate sessionFactory(配置了c3p0连接池)。我的sessionFactory bean的定义如下: <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> ... </bean> ... 在线程化环境中使用包装DAOBean的最佳实践和/
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
...
</bean>
...
在线程化环境中使用包装DAOBean的最佳实践和/或最佳性能是什么?我应该将它定义为一个单例bean,并让它在线程之间共享,同时依赖sessionFactory的线程安全性吗?还是应该为每个线程创建一个单独的DAO实例?这有关系吗?如果DAO除了SessionFactory之外没有任何成员字段,请将每个字段用作传递给所有线程的单例 Spring的一种常见做法是使用
@Repository
和@Autowired
将实例注释到需要使用它的服务或其他类中
SessionFactory#openSession()
和SessionFactory#getCurrentSession()
分别返回一个新的会话实例和一个线程本地会话,因此线程之间不会共享任何内容。如果DAO除了SessionFactory之外没有任何成员字段,请将每个字段用作传递给所有线程的单例
Spring的一种常见做法是使用@Repository
和@Autowired
将实例注释到需要使用它的服务或其他类中
SessionFactory#openSession()
和SessionFactory#getCurrentSession()
分别返回一个新的会话实例和一个线程本地会话,因此线程之间不共享任何内容