Hibernate Spring MVC非常慢

时间:2017-12-08 09:43:45

标签: java hibernate

我使用Spring MVC,Hibernate和MySQL构建经理Web项目。当我写代码列出我在数据库中的所有摄政时。它在第一次运行非常快,但是当我重复加载页面(8-10次)时,我的页面只是保持加载模式而没有停止的迹象。首先,我使用MSSQL Server然后我更改为MySQL,没有任何改变,我关闭防火墙,仍然无法正常工作。

这是我的调度程序-servlet.xml:

<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" cache-  period="31556926"/>
<mvc:annotation-driven />
<context:component-scan base-package="com.hinet.storage" />

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.UrlBasedViewResolver" 
      p:viewClass=" org.springframework.web.servlet.view.tiles3.TilesView"/>

<bean id="tilesConfigurer" 
      class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"
      p:definitions="/WEB-INF/tiles/tiles.xml"/>

<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location" value="/WEB-INF/database.properties" />
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="com.hinet.storage" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.current_session_context_class">thread</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="configurationClass">org.hibernate.cfg.AnnotationConfiguration</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.use_sql_comments">true</prop>
            <prop key="hibernate.generate_statistics">true</prop>
        </props>
    </property>
 </bean>

这是RengencyDAOImpl:

@Repository("regencyDAO")
@Transactional
public class RegencyDAOImpl extends BaseDAOImpl implements RegencyDAO{

    @Override
    public List<Regency> getRegencies() {
        String sql = "from Regency as re where re.isDelete != true";
        Query query = this.openSession().createQuery(sql, Regency.class);
        List<Regency> regencies = query.list();
        return regencies;
    }
}
  

过去几天这让我很头疼!有谁知道   造成这个问题的原因是什么?

1 个答案:

答案 0 :(得分:0)

我认为你耗尽了你的数据源(即在没有关闭连接的情况下打开)。 openSession()做了什么?我认为它应该像getCurrentSession()。 如果您打开新会话,则应将其关闭。