<bean id="dataSource" class="com.mchange.v2.c3p0. ComboPooledDataSource"
destroy-method="close">
<!-- 指定連接數據庫的驅動 -->
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<!-- 指定連接數據庫的URL -->
<property name="jdbcUrl" value="jdbc:mysql://localhost/j2ee"/>
<!-- 指定連接數據庫的用戶名 -->
<property name="user" value="root"/>
<!-- 指定連接數據庫的密碼 -->
<property name="password" value="32147"/>
<!-- 指定連接數據庫連接池的最大連接數 -->
<property name="maxPoolSize" value="40"/>
<!-- 指定連接數據庫連接池的最小連接數 -->
<property name="minPoolSize" value="1"/>
<!-- 指定連接數據庫連接池的初始化連接數 -->
<property name="initialPoolSize" value="1"/>
<!-- 指定連接數據庫連接池的連接最大空閑時間,改時間段內不對數據庫做任何操作,既斷開鏈接 -->
<property name="maxIdleTime" value="20"/>
</bean>
<!-- 定義Hibernate的SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3. LocalSessionFactoryBean">
<!-- 依賴注入數據源,正是上文定義的dataSource -->
<property name="dataSource" ref="dataSource"/>
<!-- mappingResources屬性用來列出全部映射文件 -->
<property name="mappingResources">
<list>
<!-- 以下用來列出所有的PO映射文件 -->
<value>lee/MyTest.hbm.xml</value>
</list>
</property>
<!-- 定義Hibernate的SessionFactory屬性 -->
<property name="hibernateProperties">
<props>
<!-- 指定Hibernate的連接方言 -->
<prop key="hibernate.dialect">org.hibernate.dialect.
MySQLDialect</prop>
<!-- 配置啟動應用時,是否根據Hibernate映射自動創建數據表 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
</beans>
一旦在Spring的IoC容器中配置了SessionFactory Bean,它將隨應用的啟動而加載,並可以充分利用IoC容器的功能,將 SessionFactory Bean注入任何Bean,比如DAO組件。一旦DAO組件獲得了SessionFactory Bean的引用,就可以完成實際的數據庫訪問。
當然,Spring也支持訪問容器數據源。如果需要使用容器數據源,可將數據源Bean修改成如下配置:
<!-- 此處配置JNDI數據源 -->
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<!-- 指定數據源的JNDI -->
<value>java:comp/env/jdbc/myds</value>
</property>
</bean>