spring整合hibernate(注解、xml)applicationContext.xml配置

每次ssh框架整合都很麻烦,今天有空余时间总结下(主要总结spring+hibernate):

1.注解方式整合:

    applicationContext.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="
	     http://www.springframework.org/schema/beans
	     http://www.springframework.org/schema/beans/spring-beans.xsd
	     http://www.springframework.org/schema/tx
	     http://www.springframework.org/schema/tx/spring-tx.xsd
	     http://www.springframework.org/schema/aop
	     http://www.springframework.org/schema/aop/spring-aop.xsd
	     http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd">
    <context:component-scan base-package="com.test" />
	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	  <property name="locations">
	  	<list>
	  		<value>classpath:jdbc.properties</value>
	  	</list>
	  </property>
	</bean>
	<bean id="c3p0DataSource" destroy-method="close"
		class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${driverClass}" />
		<property name="jdbcUrl" value="${url}" />
		<property name="user" value="${user}" />
		<property name="password" value="${password}" />
		<property name="initialPoolSize" value="${initialPoolSize}" />
		<property name="minPoolSize" value="${minPoolSize}" />
		<property name="maxPoolSize" value="${maxPoolSize}" />
		<property name="maxIdleTime" value="${maxIdleTime}" />
	</bean>                 
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="c3p0DataSource" />
		<property name="packagesToScan">
			<list>
				<value>com.test.bean</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">${dialect}</prop>
				<prop key="hibernate.show_sql">${show_sql}</prop>
				<prop key="hibernate.format_sql">${format_sql}</prop>
				<prop key="hibernate.use_sql_commants">${use_sql_comments}</prop>
				<prop key="hibernate.hbm2ddl.auto">${hbm2ddl.auto}</prop>
		    </props>
		</property>
	</bean>
	<bean id="txManager"
		class="org.springframework.orm.hibernate4.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="get*" read-only="true" />
			<tx:method name="*" />
		</tx:attributes>
	</tx:advice>
	<aop:config>
		<aop:pointcut id="bizMethods" expression="execution(* com.test.biz.*.*(..))" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods" />
	</aop:config>
</beans>

2.xml方式实现

    applicationContext.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
					  http://www.springframework.org/schema/beans/spring-beans.xsd
					  http://www.springframework.org/schema/tx
					  http://www.springframework.org/schema/tx/spring-tx.xsd
					  http://www.springframework.org/schema/aop
					  http://www.springframework.org/schema/aop/spring-aop.xsd">
         
    <!-- 讓spring 去读取指定路径下的资源文件 -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	  <property name="locations" value="classpath:jdbc.properties"/>
	</bean>
	
	<!-- 配置c3p0连接池 -->
	<bean id="c3p0Source" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
	  <property name="driverClass" value="${driverClass}" />
	  <property name="jdbcUrl" value="${url}" />
	  <property name="user" value="${user}" />
	  <property name="password" value="${password}" />
	  <property name="initialPoolSize" value="${initialPoolSize}" />
	  <property name="minPoolSize" value="${minPoolSize}" />
	  <property name="maxPoolSize" value="${maxPoolSize}" />
	  <property name="maxIdleTime" value="${maxIdleTime}" />
	</bean>
	
	<!-- 配置SessionFactory -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
	  <property name="dataSource" ref="c3p0Source" />
	  <property name="mappingResources">
		  <list>
		    <value>/com/cdzg/spring/bean/User.hbm.xml</value>
		  </list>
	  </property>
	  <property name="hibernateProperties">
	    <props>
				<prop key="hibernate.dialect">${dialect}</prop>
				<prop key="hibernate.hbm2ddl.auto">${hbm2ddl.auto}</prop>
				<prop key="hibernate.show_sql">${show_sql}</prop>
				<prop key="hibernate.format_sql">${format_sql}</prop>
				<prop key="hibernate.use_sql_comments">${use_sql_comments}</prop>
			</props>
	  </property>
	</bean>
	
	<!-- 配置事务管理器 -->
	<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
	  <property name="sessionFactory" ref="sessionFactory" />
	</bean>
	
	<!-- 定义事务通知 -->
	<tx:advice id="txAdvice" transaction-manager="txManager">
	  <tx:attributes>
	    <tx:method name="get*" read-only="true"/>
	    <tx:method name="*"/>
	  </tx:attributes>
    </tx:advice>
     
     <!-- 定义事务切面,并应用事务通知 -->    
     <aop:config>
	  <aop:pointcut id="xxxBizImpl" expression="execution(* com.cdzg.spring.biz.*.*(..))"/>
	  <aop:advisor pointcut-ref="xxxBizImpl" advice-ref="txAdvice"/>
	 </aop:config>
         
	<bean id="userDaoImpl" class="com.cdzg.spring.dao.impl.UserDaoImpl">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<bean id="userBizImpl" class="com.cdzg.spring.biz.impl.UserBizImpl">
		<property name="userDao" ref="userDaoImpl" />
	</bean>
	<bean id="userAction" class="com.cdzg.spring.web.actions.UserAction">
		<property name="userBiz" ref="userBizImpl" />
	</bean>
</beans>

注解区别:spring整合hibernate(注解、xml)applicationContext.xml配置_第1张图片

 

 

 

 

 

 

你可能感兴趣的:(spring,Hibernate)