spring手动注入 数据库很快连接数就超了,怎么回事?

我不是VIP 2014-11-04 08:18:32
前台是jsp调用一个后台的javabean,,在bean层手动注入Service,这样写出来后连接 速度很慢,并且很快数据库就会显示“too many connection”,,求解决方法。可以确定Service和DAO还有连接池那些是没有问题的,
jsp调用bean方式:
<jsp:useBean id="about" scope="request"
class="com.swust.kelab.web.controller.bean.AboutBean"></jsp:useBean>
<jsp:setProperty property="navId" name="about" param="naviid" />
javaBean:
public class AboutBean {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
new String[] { "classpath:spring/dao.xml",
"classpath:spring/service.xml" });

private AboutService aboutService = (AboutService) ctx.getBean("AboutService");
private int navId;
public void setNavId(int navId) {
this.navId = navId;
}

public About getAboutDetail(){
About about = new About();
about = aboutService.viewOneAbout(navId);
return about;
}

}
...全文
422 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveunittesting 2014-11-06
  • 打赏
  • 举报
回复
引用 10 楼 u010343795 的回复:
[quote=引用 7 楼 yys79 的回复:] [quote=引用 6 楼 u010343795 的回复:] [quote=引用 4 楼 yys79 的回复:] sping会导致数据源死锁,还用它呢?
什么意思?是注入方式?[/quote] 搜一下spring c3p0 死锁 吧[/quote]用的是DBCP连接池[/quote] 我只是能让你搜到那篇文章,什么数据源都一样,我测试过。 http://blog.sina.com.cn/s/blog_53923f940100g6as.html 这文章可能对于SSH拥趸来说有些不爽,但绝对是我验证过的,起码我在spring4.0和hibernate4.3上验证过。
我不是VIP 2014-11-05
  • 打赏
  • 举报
回复
引用 7 楼 yys79 的回复:
[quote=引用 6 楼 u010343795 的回复:] [quote=引用 4 楼 yys79 的回复:] sping会导致数据源死锁,还用它呢?
什么意思?是注入方式?[/quote] 搜一下spring c3p0 死锁 吧[/quote]用的是DBCP连接池
我不是VIP 2014-11-05
  • 打赏
  • 举报
回复
引用 8 楼 Inhibitory 的回复:
too many connection 看上去就是连接太多,用完后没有关闭连接。
不存在这个问题
Inhibitory 2014-11-05
  • 打赏
  • 举报
回复
too many connection 看上去就是连接太多,用完后没有关闭连接。
loveunittesting 2014-11-05
  • 打赏
  • 举报
回复
引用 6 楼 u010343795 的回复:
[quote=引用 4 楼 yys79 的回复:] sping会导致数据源死锁,还用它呢?
什么意思?是注入方式?[/quote] 搜一下spring c3p0 死锁 吧
xcmzc 2014-11-05
  • 打赏
  • 举报
回复
ApplicationContext ctx = new ClassPathXmlApplicationContext(“spring.xml”) tomcat 会自动扫描 action范围--packge范围--application范围 不需要重新new一个对象 里面传的是一个key
loveunittesting 2014-11-05
  • 打赏
  • 举报
回复
sping会导致数据源死锁,还用它呢?
我不是VIP 2014-11-05
  • 打赏
  • 举报
回复
引用 楼主 u010343795 的回复:
前台是jsp调用一个后台的javabean,,在bean层手动注入Service,这样写出来后连接 速度很慢,并且很快数据库就会显示“too many connection”,,求解决方法。可以确定Service和DAO还有连接池那些是没有问题的, jsp调用bean方式: <jsp:useBean id="about" scope="request" class="com.swust.kelab.web.controller.bean.AboutBean"></jsp:useBean> <jsp:setProperty property="navId" name="about" param="naviid" /> javaBean: public class AboutBean { ApplicationContext ctx = new ClassPathXmlApplicationContext( new String[] { "classpath:spring/dao.xml", "classpath:spring/service.xml" }); private AboutService aboutService = (AboutService) ctx.getBean("AboutService"); private int navId; public void setNavId(int navId) { this.navId = navId; } public About getAboutDetail(){ About about = new About(); about = aboutService.viewOneAbout(navId); return about; } }
因为不断创建容器,所以导致访问速度慢,连接数过多?ServletContext应该如何获取呢?
我不是VIP 2014-11-05
  • 打赏
  • 举报
回复
引用 4 楼 yys79 的回复:
sping会导致数据源死锁,还用它呢?
什么意思?是注入方式?
Mr_JieLQ 2014-11-04
  • 打赏
  • 举报
回复
连接池没问题那就是连接被大量占用,可能是程序效率问题,或者程序有阻塞方法
猎魔人-不纯 2014-11-04
  • 打赏
  • 举报
回复
web项目已经有spring容器了,可以获取,不需要在建个新的spring容器 ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧