1。属性占位符配置器:可以将相关属性抽取出来放入配置文件(比如数据库的连接信息),然后用占位符的方式读取出来,方便文件的分类管理
<?xml version="1.0" encoding="GBK"?>
<!-- Spring配置文件的根元素,使用spring-beans-3.0.xsd语义约束 -->
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- PropertyPlaceholderConfigurer是一个Bean后处理器,它会读取
属性文件信息,并将这些信息设置成Spring配置文件的元数据。 -->
<bean class=
"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>dbconn.properties</value>
<!--如果有多个属性文件,依次在下面列出来-->
<!--value>wawa.properties</value-->
</list>
</property>
</bean>
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="${jdbc.driverClassName}"/>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="${jdbc.url}"/>
<!-- 指定连接数据库的用户名 -->
<property name="user" value="${jdbc.username}"/>
<!-- 指定连接数据库的密码 -->
<property name="password" value="${jdbc.password}"/>
</bean>
</beans>
2.重写占位符配置器:这种方式可以允许xml文件中有默认配置,相当于使用属性文件+XML文件总和,但是需要注意的是配置文件的key的格式必须为:beanName.property,即,bean的名字.属性的名字
<?xml version="1.0" encoding="GBK"?>
<!-- Spring配置文件的根元素,使用spring-beans-3.0.xsd语义约束 -->
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- PropertyOverrideConfigurer是一个Bean后处理器,它会读取
属性文件信息,并用这些信息设置覆盖Spring配置文件的元数据-->
<bean class=
"org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="locations">
<list>
<value>dbconn.properties</value>
<!--如果有多个属性文件,依次在下面列出来-->
</list>
</property>
</bean>
<!-- 定义数据源Bean,使用C3P0数据源实现,
配置该Bean时没有指定任何信息,但Properties文件里的
信息将会直接覆盖该Bean的属性值-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close"/>
</beans>
以上两种配置如果导入了context的Schema,则可以使用<context:property-override location="属性文件路径(列如:classpath:XXX.properties)"/>或则<context:property-placeholder location="属性文件路径(列如:classpath:XXX.properties)"/>代替这两个容器后处理器Bean的配置。
3.如果习惯了使用hibernate的配置风格,可以使用<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" p:configLocation="classpath:hibernate.cfg.xml"/>,配置多个文件则使用configLocations属性即可。
4.使用Spring的配置风格,<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" p:dataSource-ref="数据源的Bean名"/>,
<!-- 依赖注入数据源,注入正是上面定义的dataSource -->
<property name="dataSource" ref="dataSource"/>
<!-- mappingResouces属性用来列出全部映射文件 -->
<property name="mappingResources">
<list>
<!-- 以下用来列出Hibernate映射文件 -->
<value>映射文件全路径名</value>
</list>
</property>
<!-- 定义Hibernate的SessionFactory的属性 -->
<property name="hibernateProperties">
<!-- 配置Hibernate属性 -->
<value>
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
hibernate.format_sql=true;
</value>
</property>