Spring + Hibernate 整合时数据库连接数过多问题的解决办法

用Spring + Hibernate 整合查询数据库的页面如下所示:

这个图中的页面里,有两个查询,一个是查询节目时刻表,一个是查询频道(图中下方的下拉列表框里的频道就是从数据库查出来的)

每刷新几下该页面,数据库就死掉了,用如下命令查看了连接数,发现连接数很多:

select count(*) from v$session;

经过研究,发现原因如下:

我这个程序中,action层调用service层(业务层),业务层又调用DAO层。

我在每个service里面都去通过new ClassPathXmlApplicationContext() 的方法来取得一个容器,从容器中取得dao,这样调用多少次service就new出多少个容器,就取得多少个dao,连接数自然就大了。

 

解决办法:

将dao通过spring注入给service,而不是在service里面去new一个容器进而得到dao了。这样的话相当于没有领会IOC的精神。

 

那么action里面如何得到service呢?注意也不要去new ClassPathXmlApplicationContext(),写一个单例类,来取得容器。代码如下:

 

package cn.com.pattek.util.utilzx;

import org.springframework.context.ApplicationC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值