【SSH异常系列】关于SSH中连接数溢出问题的解决方法

最近在项目中遇到一些奇葩的问题:在页面刷新多次后就报错了,报错原因是数据库的连接数太多。最后的原因分析如下:

1、在每次拿bean的时候都重新的new了一个新的容器对象。

ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");

这句话即使重新new一次AppliactionContext对象,然而在每次new的时候都会重新的去解读beans.xml中的配置信息,包括重新建立一个新的数据源连接对象。

所以这样在每次拿bean容器的时候很快就new出了很多的连接,当这些连接数足够多的时候就报错了:Too Many Connections


2、解决方法:使用IOC思想,直接配置bean.xml,将需要的bean容器对象直接注入到所要用到的bean中,例如:

<bean id="departmentDao" class="cn.dao.departmentDao.impl.DepartmentDaoImpl"/>		
	<bean id="departmentService" class="cn.service.deparmentservice.impl.DepartmentServiceImpl">
	    <property name="departmentDao" ref="departmentDao"></property>
	</bean>	
	<bean id="departmentAction" class="cn.action.department.DepartmentAction">
	    <property name="departmentService" ref="departmentService"></property>
	    <property name="positionService" ref="positionService"></property>	    
	</bean>
这样的好处是:使用了Spring为我们提供的IOC思想,减少了实例化对象的过程。


3、直接new bean容器和注入的区别

经过本人观察,直接new ApplicationContext对象时的耗时是比较长的,多次new对象则耗费更多的时间,这体现在页面刷新更慢,而是用注入则只是Spring帮我们初始化了一次,使得后面的操作不需要重新new ApplicationContext对象,这样就减少了响应时间。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值