1.读取属性文件
<!-- for properties files -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:*.properties</value>
</list>
</property>
</bean>
2.配置数据源
<!-- for dataSource -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="properties">
<props>
<prop key="c3p0.minPoolSize">${hibernate.c3p0.minPoolSize}</prop>
<prop key="hc3p0.maxPoolSize">${hibernate.c3p0.maxPoolSize}</prop>
<prop key="hc3p0.timeout">${hibernate.c3p0.timeout}</prop>
<prop key="c3p0.max_statement">${hibernate.c3p0.max_statement}</prop>
<prop key="user">${jdbc.username}</prop>
<prop key="password">${jdbc.password}</prop>
<prop key="c3p0.testConnectionOnCheckout">true</prop>
</props>
</property>
</bean>
#Jdbc Configuration
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/wsh?useUnicode=true&characterEncoding=utf-8
jdbc.username=wsh
jdbc.password=wsh
hibernate.c3p0.minPoolSize=2
hibernate.c3p0.maxPoolSize=10
hibernate.c3p0.timeout=100
hibernate.c3p0.max_statement=900
注:当然还有很多例如"org.apache.commons.dbcp.BasicDataSource"
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
jdbc.driverClassName=org.gjt.mm.mysql.Driver
jdbc.url=jdbc:mysql://172.19.30.178:3306/wsh?useUnicode=true&characterEncoding=utf-8
jdbc.username=wsh
jdbc.password=wsh
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=update
3.sessionFactory配置
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingDirectoryLocations">
<list>
<value>classpath:/com/rain/wsh/model/</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
<!-- <prop key="hibernate.cache.use_query_cache">false</prop> -->
<!-- prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop-->
<prop key="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</prop>
<prop key="hibernate.generate_statistics">false</prop>
</props>
</property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
singleton="true">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>
com/rain/study/model/User.hbm.xml
</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
${hibernate.dialect}
</prop>
<prop key="hibernate.show_sql">
${hibernate.show_sql}
</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>-->
</props>
</property>
</bean>
4.transactionManager配置
<!-- Hibernate transaction processing -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
5.baseTxService配置(Service的代理工厂)
<bean id="baseTxService" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED, readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
<property name="postInterceptors" ref="methodSecurityInterceptor" />
</bean>
methodSecurityInterceptor则是acegi中的拦截器(注:见下一篇acegi配置)
6.Service配置
<bean id="userService" parent="baseTxService">
<property name="target">
<bean class="com.rain.wsh.service.impl.UserServiceImpl"/>
</property>
</bean>
注意:为了更加的是配置文件清晰,可以把spring的配置文件分成多个配置文件,例如(applicationContext-hibernate.xml,applicationContext-service.xml等),然后在web.xml中配置的时候写成:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
posted on 2007-03-29 10:10
周锐 阅读(455)
评论(0) 编辑 收藏 所属分类:
Spring