spring 三大核心科技———DI(依賴注入)、AOP(面向切面編程)、DT(聲明式事務)spring
重點說DT的配置,它的使用大大簡化了持久層和業務層的代碼編寫。sql
在applicationContext.xml中分如下步驟:apache
1.讀取外部文件編程
<context:property-placeholder location="classpath:dbconfig.properties"/> //dbconfig.properties是已寫好的properies文件,內有jdbc配置屬性session
2.配置鏈接池組件(能夠用c3p0,也可使用dbcp)oracle
<!-- a.使用c3p0鏈接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClass}"/>
<property name="jdbcUrl" value="${jdbcUrl}"/>
<property name="user" value="${user}"/>
<property name="password" value="${password}"/>
<!--配置鏈接池其餘屬性,如初始化容量,最長等待時間... -->
<property name="initialPoolSize" value="${initialPoolSize}"/>
</bean>
<!-- b.使用Apache Commons Dbcp -->
<bean id="dataSource2" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="driverClassName" value="${driverClass}"/>
<property name="url" value="${jdbcUrl}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>app
<property name="initialSize" value="${initialSize}"/>
</bean> url
3.配置SessionFactory(至關於hibernate.cfg.xml) --完成了Hibernate和Spring的整合spa
//此處以oracle10g爲例hibernate
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 配置Hibernate其餘屬性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.jdbc.batch_size">50</prop>
</props>
</property>
<!-- 配置映射關係 -->
<property name="packagesToScan" value="com.tz.spring.entity"/>
</bean>
4.配置事務管理器
<bean id="tm" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
5.固然,要開啓聲明式事務,也要開啓AOP,並配置掃描標註註解的包,依次以下
<tx:annotation-driven transaction-manager="tm"/>
<aop:aspectj-autoproxy/>
<context:component-scan base-package="com.tz.spring.dao,com.tz.spring.service,com.tz.spring.advice"/>