1、引入properties文件,定义变量
在Spring配置文件中可以引入一个或者多个properties文件来定义变量
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
<!--
<list>
<value>classpath:jdbc.properties</value>
<value>classpath:jdbc-sqlserver.properties</value>
</list>
-->
</property>
</bean>
应用一个properties文件,直接用<value></value>就可以了,引用多个可采用<list></list>的方式。classpath:指定的是编译目标路径,在Web应用中指定的是WEB-INF/classes目录。
jdbc.properties文件内容:
mysql.driver=org.gjt.mm.mysql.Driver
mysql.url=jdbc:mysql://localhost:3306/hibernate
mysql.username=root
mysql.password=mysql
则我们在定义dataSource时可引用这些变量,如下所示:
<bean id="mysqlDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${mysql.driver}</value>
</property>
<property name="url">
<value>${mysql.url}</value>
</property>
<property name="username">
<value>${mysql.username}</value>
</property>
<property name="password">
<value>${mysql.password}</value>
</property>
</bean>
2、定义LocalSessionFactoryBean时不使用hibernate.cfg.xml,直接定义
使用hibernate.cfg.xml时如下:
<bean id="mysessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
不使用hibernate.cfg.xml时如下:
<!-- dataSource -->
<bean id="mysqlDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>org.gjt.mm.mysql.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/hibernate</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>mysql</value>
</property>
</bean>
<!-- Hibernate SessionFactory Definition -->
<bean id="mysessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="mysqlDataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>User.hbm.xml</value>
</list>
</property>
</bean>
建议使用第一种方式,这样Hibernate的配置信息单独放置在hibernate.cfg.xml中,提高了bean.xml的可读性。