Spring中DataSource 的注入方法:
1) 在进行单元测试或应用系统比较小时,可以使用Spring的DriverManagerDataSource:
- < bean id = "ds"
- class = "org.springframework.jdbc .datasource .DriverManagerDataSource" >
- < property name = "driverClassName" value = "com.mysql.jdbc .Driver" />
- < property name = "url" value = "jdbc :mysql://localhost:3306/payout" />
- < property name = "username" value = "root" />
- < property name = "password" value = "admin" />
- </ bean >
<bean id="ds" class="org.springframework.jdbc .datasource .DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc .Driver"/> <property name="url" value="jdbc :mysql://localhost:3306/payout"/> <property name="username" value="root"/> <property name="password" value="admin"/> </bean>
注:DriverManagerDataSource不具备连接池的功能
2)使用第三方数据库连接池,如DBCP:
- < bean id = "dataSource "
- class = "org.apache.commons.dbcp.BasicDataSource"
- destroy-method = "close" lazy-init = "true" >
- < property name = "driverClassName" value = "com.mysql.jdbc .Driver" />
- < property name = "url"
- value = "jdbc :mysql://localhost:3306/payout" />
- < property name = "username" value = "root" />
- < property name = "password" value = "admin" />
- </ bean >
<bean id="dataSource " class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" lazy-init="true"> <property name="driverClassName" value="com.mysql.jdbc .Driver"/> <property name="url" value="jdbc :mysql://localhost:3306/payout"/> <property name="username" value="root"/> <property name="password" value="admin"/> </bean>
通过指定destroy-method属性,告诉Spring在关闭时会调用BasicDataSource的close方法,释放资源。
3)通过JNDI查找DataSource :
- < bean id = "dataSource "
- class = "org.springframework.jndi.JndiObjectFactoryBean" >
- < property name = "jndiName" >
- < value > java:comp/env/jdbc /myDatasource </ value >
- </ property >
- </ bean >