一:数据源的配置
1、通过JNDI配置数据源 1.在tomcat context.xml中配置数据源 <Resource name="jdbc/ds" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:orcl" username="shuaige" password="123456" maxActive="20" maxIdle="10" /> 2.在applicationContext中引用创建datasourece bean <!-- 通过JNDI配置DataSource --> <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>java:comp/env/jdbc/jboa</value> </property> </bean>2、通过Properties文件配置数据连接信息 1.创建jdbc.properties文件 jdbc.driver=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl jdbc.username=shuaige jdbc.password=123456 2.加载配置文件 <!-- 第一种、加载配置文件 --> <context:property-placeholder location="classpath:db.properties"/> <!-- 第二种、加载配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:jdbc:properties</value> </property> </bean> 3.在applicationContext中引用创建datasourece bean <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean>二、SessionFactory <!-- 定义SessionFactory Bean --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!--为LocalSessionFactoryBean注入定义好的数据源--> <property name="dataSource"> <ref bean="dataSource"/> </property> <!--添加Hibernate配置参数--> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> </props> </property> <!--添加对象关系映射文件 扫描这个包下的所有配置文件--> <property name="mappingDirectoryLocations"> <list> <value>classpath:com/entity/</value> </list> </property> </bean> <!-- 定义事务管理器 --> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 通过<tx:advice>标签定义事务增强,并指定事务管理器 --> <tx:advice id="txAdvice" transaction-manager="txManager"> <!-- 定义属性,声明事务规则 --> <tx:attributes> <tx:method name="find*" read-only="true"/> <tx:method name="search*" read-only="true"/> <tx:method name="query*" read-only="true"/> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="del*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="do*" propagation="REQUIRED"/> <tx:method name="*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- 定义切面 --> <aop:config> <!-- 定义切入点 --> <aop:pointcut expression="execution(* com.biz.impl.*.*(..))" id="serviceMethod"/> <!-- 将事务增强与切入点组合 --> <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice" /> </aop:config>