通过spring的orm修改persistence.xml文件的存放路径

在默认情况下,persistence.xml是存放在classpath路径下的META-INF/文件夹下面的。但是这样的话,跟我们的习惯不一样,因为可以通过在spring的配置文件中,指明persistence.xml文件的位置来进行配置。代码如下:

 

<!-- 配置JPA实体管理器工厂 -->
	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="persistenceUnitName" value="test" />
		<property name="persistenceXmlLocation" value="classpath:persistence.xml" />
	</bean>

	<!-- 配置事务管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory">
			<ref bean="entityManagerFactory" />
		</property>
	</bean>

<!-- 配置AOP事务拦截-->
	<aop:config>
		<aop:pointcut id="ServiceMethods" expression="execution(public * net.kentop.cmmp.service.*.impl.*.*(..))" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="ServiceMethods" />
	</aop:config>

	<!-- 配置事务通知的属性 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="*" propagation="REQUIRED" />
			<tx:method name="get*" propagation="REQUIRED" read-only="true" />
		</tx:attributes>
	</tx:advice>

 

    以上的配置还配置了事务和AOP事务拦截。

 

    这样的话,要使用到hibernate的dao层就要继承

org.springframework.orm.jpa.support.JpaDaoSupport类,这样才可以getJpaTemplate()方法获得entityManager实例,对数据库进行操作

 

你可能感兴趣的:(spring,AOP,xml,orm,jpa)