- applicationContext.xml中,以Bean的形式出现,因为其也是一种资源
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<proprety name="diverClass" value="com.mysql.jdbc.Driver">
<proprety name="jdbcUrl" value="jdbc:mysql://localhost:3306/xxx">
<proprety name="user" value="root">
<proprety name="password" value="root">
</bean>
- 将资源与bean的配置分开,eg.datasourse
资源信息放入jdbc.properties文件,xml或JdbcConfig中通过${...}获取
jdbc.properties
jdbc.diverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/xxx
jdbc.user=root
jdbc.password=root
<bean id="runner" class="org.apache.commons.dbutils.QueryRunner">
<constructor-arg index="0" ref="dataSource"></constructor-arg>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<proprety name="diverClass" value="${jdbc.diverClass}">
<proprety name="jdbcUrl" value="${jdbc.jdbcUrl}">
<proprety name="user" value="${jdbc.user}">
<proprety name="password" value="${jdbc.password}">
</bean>
或
public class JdbcConfig{
@Value(${jdbc.diverClass})
private String diverClass;
@Value(${jdbc.jdbcUrl})
private String jdbcUrl
@Value(${jdbc.user})
private String user
@Value(${jdbc.password})
private String password
@Bean(name="runner")
puclic QueryRunner getQueryRunner(@Qualifier("dataSource") DataSource ds){
return new QueryRunner(ds)
}
@Bean(name="dataSource")
public DataSource getDataSource(){
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass(driverClass);
dataSource.setJdbcUrl(url);
dataSource.setUser(user);
dataSource.setPassword(password);
return dataSource;
}
}
- xml需要先加载properties文件
<context:property-placeholder location="jdbc.properties"/>
或在最终引入的配置类中添加
@Bean
public PropertySourcesPlaceholderConfigurer createPropertySourcesPlaceholderConfigurer(){
return new PropertySourcesPlaceholderConfigurer();
}
网友评论