这样配置就能使用到,连接池吗?关于Spring配置proxool

nil2000 2008-01-20 08:08:24
我在配置文件里面配置了proxool,连接池
然后在BaseDao 类里直接用jdbcTemplate操作db
是不是就能自动用到连接池的功能.这样用容器做我还真有点不习惯.
不知道所用的connection是否来自连接池!
希望知道的大侠能给我回答一下啊


<!--Mysql DataSource-->
<bean id="proxoolDataSource"
class="org.logicalcobwebs.proxool.ProxoolDataSource" >
<property name="driver">
<value>${proxool.dbDriver}</value>
</property>
<property name="driverUrl">
<value>${proxool.dbUrl}</value>
</property>
<property name="user">
<value>${proxool.dbUser}</value>
</property>
<property name="password">
<value>${proxool.dbPassWord}</value>
</property>
<property name="alias">
<value>springmvc</value>
</property>
</bean>


<!-- jdbc template -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="proxoolDataSource"/>
</property>
</bean>

<!--Connection-->
<bean id="baseDao" class="com.cn.springcomm.BaseDao">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
<property name="xtest" value="test"/>
</bean>


//CLASS



package com.cn.springcomm;

import java.util.List;
import org.springframework.jdbc.core.JdbcTemplate;

public class BaseDao {
public BaseDao(){}

public List queryForList(String sql) {
List list = jdbcTemplate.queryForList(sql);
return list;
}

private JdbcTemplate jdbcTemplate;

public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}


public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

}



...全文
622 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
girl55 2008-01-27
  • 打赏
  • 举报
回复
我理解啊,启动apserver的时候,就自动单例的加载springapp-servlet.xml里所有的类!
也就是说该web项目用到所有 springapp-servlet.xml 里面的类都是已经初始化好的
girl55 2008-01-27
  • 打赏
  • 举报
回复
就算org.logicalcobwebs.proxool.ProxoolDataSource实现了
连接池的机制那那jdbctempt每次都会被new一次?
spring配置文件不是启动apserver的时候就自动单例的加载springapp-servlet.xml里面的类吗?
kisslan 2008-01-24
  • 打赏
  • 举报
回复
up
kisslan 2008-01-24
  • 打赏
  • 举报
回复
up
kisslan 2008-01-24
  • 打赏
  • 举报
回复
up
goodmrning 2008-01-23
  • 打赏
  • 举报
回复
帮顶
gongzhy 2008-01-22
  • 打赏
  • 举报
回复
帮顶
imA 2008-01-22
  • 打赏
  • 举报
回复
这样是不是用到连接池是要看你的指定的class="org.logicalcobwebs.proxool.ProxoolDataSource" 这个类是不是实现了池的机制。
amdwinter 2008-01-21
  • 打赏
  • 举报
回复
guang z
nil2000 2008-01-21
  • 打赏
  • 举报
回复
是否只要按照上面的配制,就会自动用到连接池啊?



<!--Mysql DataSource-->
<bean id="proxoolDataSource"
class="org.logicalcobwebs.proxool.ProxoolDataSource" >
<property name="driver">
<value> ${proxool.dbDriver} </value>
</property>
<property name="driverUrl">
<value> ${proxool.dbUrl} </value>
</property>
<property name="user">
<value> ${proxool.dbUser} </value>
</property>
<property name="password">
<value> ${proxool.dbPassWord} </value>
</property>
<property name="alias">
<value> springmvc </value>
</property>
</bean>


<!-- jdbc template -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="proxoolDataSource"/>
</property>
</bean>

<!--Connection-->
<bean id="baseDao" class="com.cn.springcomm.BaseDao">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
<property name="xtest" value="test"/>
</bean>


//CLASS


package com.cn.springcomm;

import java.util.List;
import org.springframework.jdbc.core.JdbcTemplate;

public class BaseDao {
public BaseDao(){}

public List queryForList(String sql) {
List list = jdbcTemplate.queryForList(sql);
return list;
}

private JdbcTemplate jdbcTemplate;

public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}


public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

}
waterborn 2008-01-21
  • 打赏
  • 举报
回复
启动的时候spring 加载相应的配置文件就可以.
FoxMale007 2008-01-21
  • 打赏
  • 举报
回复
回楼主:
你可以在web.xml里配置proxool的servlet,可以监视proxool的连接池情况,这是个很不错的功能,具体为:

<servlet>
<servlet-name>proxooladmin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>proxooladmin</servlet-name>
<url-pattern>/proxooladmin</url-pattern>
</servlet-mapping>


然后你可以看到连接池工作情况,如果你觉得这样看得还不够清楚,可以开启防火墙,监视你的数据库连接端口的活动

回楼上:
作为一个连接池,最大/最小连接池数目是肯定支持的:
<property name="maximumConnectionCount" value="${proxool.maximum-connection-count}" />
<property name="minimumConnectionCount" value="${proxool.minimum-connection-count}" />
这两个就是最大/最小连接池数目
  • 打赏
  • 举报
回复
我没有用过Proxool,我只用过C3P0,既然这样配了,肯定是能用到连接池的,
但是我好像没有看到最大、最小的连接数目,在Proxool中可以不用配置?
waterborn 2008-01-21
  • 打赏
  • 举报
回复
proxool 与spring 整合有bug , user 和password 有问题 ,要么配置在URL 中, 要么增加一个delegateProperties 配置
如下

<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="${datasource.driverClassName}" />
<property name="driverUrl" value="${datasource.url}" />
<property name="user" value="${datasource.username}" />
<property name="password" value="${datasource.password}" />
<property name="alias" value="${proxool.alias}" />
<property name="houseKeepingTestSql" value="${proxool.house-keeping-test-sql}" />
<property name="simultaneousBuildThrottle" value="${proxool.simultaneous-build-throttle}" />
<property name="maximumConnectionCount" value="${proxool.maximum-connection-count}" />
<property name="minimumConnectionCount" value="${proxool.minimum-connection-count}" />
<property name="maximumConnectionLifetime" value="${proxool.maximum-connection-lifetime}" />
<!--[Proxool Bug]Miss user and password properties, must add delegateProperties. -->
<property name="delegateProperties" value="user=${datasource.username},password=${datasource.password}" />
</bean>
sunyujia 2008-01-20
  • 打赏
  • 举报
回复
connection来自DataSource

实际上你问的问题实质我想是spring.spring封装了操作db的一些东西

JdbcTemplate
HibernateTemplate
还有spring的Dao源码不是很复杂建议阅读
proxoolDataSource和org.apache.commons.dbcp.BasicDataSource用法一样其他连接池也一样,他们实现了共同的接口
spring的db模版取得了datasource对象就可以取得连接 封装了打开连接关闭连接的代码而已即便不用spring一般企业也都有自己不同程度的封装

刑红瑞的博客中曾经详细的描述了不用connection用DataSource的原因你找下,也可以把他的博文都读下,我觉得他的一些见解都很独到.
http://blogger.org.cn/blog/blog.asp?name=hongrui
goodmrning 2008-01-20
  • 打赏
  • 举报
回复
关注

62,623

社区成员

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

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