xml配置spring集成hibernate

<?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:context="http://www.springframework.org/schema/context"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	  http://www.springframework.org/schema/context
	  http://www.springframework.org/schema/context/spring-context-3.0.xsd
	  http://www.springframework.org/schema/mvc
	  http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
	  http://www.springframework.org/schema/aop 
	  http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	  http://www.springframework.org/schema/tx 
	  http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

	<!-- 初始化证书信息bean 存储pfx信息 单例 -->
	<bean id="initpfx" class="com.yjm.initcert.InitX509CertInfo"
		scope="singleton"></bean>

	<!-- 取得返回sessionFactory对象 -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation" value="classpath:hibernate.cfg.xml">
		</property>
	</bean>
	<!--
		取得 hibernate的sessionfactory 去封装spring自己的事务管理器 事务管理器比hibernate自带的强大很多
	-->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<!-- 数据处理DAO类 sessionfactory工厂类 DAO  sessionFactory单例处理  -->
	<bean id="commondao" class="com.yjm.dao.CommonDAO" scope="singleton">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

	<!-- 逻辑处理service类 Food-->
	<bean id="foodservice" class="com.yjm.service.FoodService">
		<property name="commonDAO" ref="commondao"></property>
	</bean>
	<!-- 逻辑处理service类 User-->
	<bean id="userservice" class="com.yjm.service.UserService">
		<property name="commonDAO" ref="commondao"></property>
	</bean>

	<!-- 逻辑处理service类 UserInfo-->
	<bean id="userinfo" class="com.yjm.service.UserInfoService">
		<property name="commonDAO" ref="commondao"></property>
	</bean>

	<!-- l -->

	<!-- 用代理类对 TransactionManager进行组合切面事务管理 -->
	<tx:advice id="advice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="find*" propagation="REQUIRED" read-only="true" />
			<tx:method name="select*" propagation="REQUIRED" read-only="true" />
			<tx:method name="load*" propagation="REQUIRED" read-only="true" />
			<tx:method name="get*" propagation="REQUIRED" />
			<tx:method name="save*" propagation="REQUIRED" />
		</tx:attributes>
	</tx:advice>
	<!-- 定义切面 -->
	<aop:config>
		<aop:pointcut expression="execution(* com.yjm.service.*.*(..))"
			id="point" />
		<aop:advisor advice-ref="advice" pointcut-ref="point" />
	</aop:config>
</beans>

sessionFactory 注入 类 默认返回的是Hibernate sessionFactory 对象

用hibernate sessionFactory 封装 spring 自己的transactionManager,spring自己的事务管理器比hibernate的 事务管理器 强大。

时间: 2024-10-12 15:23:38

xml配置spring集成hibernate的相关文章

Spring集成Hibernate(基于XML和注解配置)

配置Hibernate <?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:context="http://www.springfram

Spring集成Hibernate

在Spring中集成Hibernate,实际上就是将Hibernate中用到的数据源DataSource. SessionFactory实例(通常使用Hibernate访问数据库时,应用程序会先创建SessionFactory实例)以及事务管理器都交由Spring容器管理.整合时,可以只使用Spring配置文件(通常是applicationContext.xml文件,也可用其它命名)来完成两个框架初始化任务,不再使用hibernate.cfg.xml配置文件. 定义数据源DataSource <

Spring 集成hibernate时配置连接释放模式

http://zmfkplj.iteye.com/blog/220822 程序出现一个奇怪的现象,用Quartz作业调度启动任务,运行一段时间后,任务会卡在一个查询接口处,久久不能运行完毕. 我本能的发现是不是数据库连接池数量不够? 于是我加带了连接池的大小.但是,问题依然出现. 这时,我就只能使用debug+log来调试了.调试后发现,当发生查询接口执行卡住现象时,程序连接池的确是不够用了,但是其他的任务有的已提前运行完了,有始有终,当前面的任务运行完,它所占用的连接应该会释放啊,这样连接不会

Spring 集成Hibernate的三种方式

首先把hibernate的配置文件hibernate.cfg.xml放入spring的src目录下,并且为了便于测试导入了一个实体类Student.java以及它的Student.hbm.xml文件 第一种集成方式:首先定义一个MySessionFactory的类 package com.tz.core; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.springfr

Spring集成hibernate错误

八月 25, 2016 7:55:31 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:struts3_wsdc_cdgl' did not find a matching property.八月

web.xml 配置Spring 与 struts

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee htt

使用spring集成hibernate

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/sch

基于XML配置Spring的自动装配

一.了解Spring自动装配的方式 采用传统的XML方式配置Bean组件的关键代码如下所示 <bean id="userMapper" class="edu.cn.dao.UserMapperImpl"> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> <bean id="userSer

xml配置spring aop

1.spring aop配置如下: 1.aspect切面是一个具体类,里面包含各种执行的通知方法.切面类也要注册到ioc容器中. 2.切入点pointcut,可以在每个通知里单独配置,即每个通知可以指定自己的切入点,各个通知的切入点不必相同. 3.配置aop的层次关系,切面是个具体类,切面里包含通知,切入点.每个通知可以单独指定自己的切入点. 切面是个具体类