JPA与Spring集成

本文介绍了如何将JPA与Spring进行集成,包括配置persistence.xml文件、设置数据源、创建entityManagerFactory、事务管理以及AOP事务控制。详细展示了Spring配置文件中的各个组件和属性,如HibernateJpaVendorAdapter、LocalContainerEntityManagerFactoryBean和JpaTransactionManager。
摘要由CSDN通过智能技术生成

persistence.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.0"xmlns="http://java.sun.com/xml/ns/persistence"

             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

              xsi:schemaLocation="http://java.sun.com/xml/ns/persistence

             http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

             

      <!-- 为持久化单元取名为jpa -->

      <persistence-unit name="template"transaction-type="RESOURCE_LOCAL">

          <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

     </persistence-unit>

 </persistence>

 

spring配置文件

 

   <context:property-placeholder location="classpath:jdbc.properties"/>

  

   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

      <property name="driverClassName" value="${databaseDriver}"/>

      <property name="url" value="${url}"/>

      <property name="username" value="${username}"/>

      <property name="password" value="${password}"/>

      <!-- 配置连接池的初始值 -->

      <property name="initialSize" value="1"/>

      <!-- 连接池的最大值 -->

      <!-- <property name="maxActive" value="500"/>-->

      <!-- 最大空闲时,当经过一个高峰之后,连接池可以将一些用不到的连接释放,一直减少到maxIdle为止 -->

      <!-- <property name="maxIdle" value="2"/>-->

      <!-- 当最小空闲时,当连接少于minIdle时会自动去申请一些连接 -->

      <property name="minIdle" value="1"/>

      <property name="maxActive" value="100"/> 

      <property name="maxIdle" value="20"/> 

      <property name="maxWait" value="1000"/>

   </bean>

  

    <!--jpa-->

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

        <property name="dataSource" ref="dataSource"/>

        <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>

        <property name="persistenceUnitName" value="template"/>

        <property name="packagesToScan" value="org.ssl.template.model"/>

        <property name="jpaVendorAdapter">

              <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">

                    <property name="showSql" value="true" />

                    <property name="generateDdl" value="true"/>

              </bean>

         </property>

    </bean>

  

   <!--事务管理-->

    <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">

        <property name="entityManagerFactory" ref="entityManagerFactory"/>

    </bean>

   

   <aop:config>

      <aop:pointcut id="txMethod" expression="execution(*com.ssl.template.service.*.*(..))"/>

      <aop:advisor advice-ref="txAdvice" pointcut-ref="txMethod"/>

   </aop:config>

  

   <tx:advice id="txAdvice" transaction-manager="txManager">

     <tx:attributes>

           <tx:method name="add*"   propagation="REQUIRED" />

           <tx:method name="update*" propagation="REQUIRED" />

           <tx:method name="delete*" propagation="REQUIRED" />

           <tx:method name="init*"  propagation="REQUIRED" />

           <tx:method name="*"      propagation="REQUIRED" read-only="true"/>

     </tx:attributes>

   </tx:advice>

   

    <!--注解管理事务-->

    <!--

    <tx:annotation-driventransaction-manager="txManager"/>

   -->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值