Java 休眠spring sigletons服务器关闭

Java 休眠spring sigletons服务器关闭,java,spring,hibernate,singleton,Java,Spring,Hibernate,Singleton,我正在使用hibernate和spring框架,我的bean处于单例模式。我是否应该关闭会话,因为它们处于单例模式? 事实上,我们的服务器出现了一些问题,连接太多 我想这可能就是问题所在。谢谢 这是我的密码: <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" scope = "singleton" > <

我正在使用hibernate和spring框架,我的bean处于单例模式。我是否应该关闭会话,因为它们处于单例模式? 事实上,我们的服务器出现了一些问题,连接太多 我想这可能就是问题所在。谢谢

这是我的密码:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" scope = "singleton" >
    <property name="dataSource" ref local="dataSource" property/>
    <property name="packagesToScan" >
        <value>Model.Entity</value>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.auto_close_session">false</prop>
        </props>
    </property>

如果您配置spring和hibernate配置,则不需要关闭连接和会话,spring将为您完成这项工作。
查看此示例

代码不应关闭服务器。我是否应该关闭会话?
@Autowired
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
    return sessionFactory;
}

public void updateDB() {
    Session session = getSessionFactory().openSession();
    Transaction transaction = null;
    try {
        transaction = session.beginTransaction();
        transaction.commit();
    } catch (HibernateException e) {
        transaction.rollback();
        e.printStackTrace();
    } finally {
        session.close();
    }
}