ssh框架中spring整合hibernate的配置文件模板(带详细注释)

applicationContext.xml的配置文件模板

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <beans
  3     xmlns="http://www.springframework.org/schema/beans"
  4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5     xmlns:aop="http://www.springframework.org/schema/aop"
  6     xmlns:p="http://www.springframework.org/schema/p"
  7     xmlns:tx="http://www.springframework.org/schema/tx"
  8     xmlns:context="http://www.springframework.org/schema/context"
  9     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 10         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
 11         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
 12         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
 13
 14
 15         <!-- 数据源配置 -->
 16     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
 17         destroy-method="close">
 18         <property name="driverClass">
 19             <value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
 20         </property>
 21         <property name="jdbcUrl">
 22             <value>jdbc:sqlserver://192.168.2.80\SQL2005;databaseName=ledger</value>
 23         </property>
 24         <!-- 默认初始化获取3个连接  -->
 25         <!-- 空闲连接检查时间 -->
 26         <property name="idleConnectionTestPeriod">
 27             <value>18000</value>
 28         </property>
 29         <!-- 最大空闲连接时间 3小时 -->
 30         <property name="maxIdleTime">
 31             <value>25000</value>
 32         </property>
 33         <!-- 检查获取的连接是否有效 -->
 34         <property name="testConnectionOnCheckin">
 35             <value>true</value>
 36         </property>
 37         <property name="testConnectionOnCheckout">
 38             <value>true</value>
 39         </property>
 40         <!-- 测试语句 -->
 41         <property name="preferredTestQuery">
 42             <value>select 1</value>
 43         </property>
 44         <property name="properties">
 45             <props>
 46                 <prop key="user">sa</prop>
 47                 <prop key="password">123456</prop>
 48                 <prop key="c3p0.acquire_increment">5</prop>
 49                 <prop key="c3p0.idle_test_period">18000</prop>
 50
 51                 <!--  连接空闲超时时间  -->
 52                 <prop key="c3p0.timeout">20000</prop>
 53                 <prop key="c3p0.max_size">40</prop>
 54                 <prop key="c3p0.max_statements">100</prop>
 55                 <prop key="c3p0.min_size">10</prop>
 56             </props>
 57         </property>
 58     </bean>
 59     <!-- session工厂(包含数据库的连接信息,实体类和表的映射文件) -->
 60     <bean id="sessionFactory"
 61         class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
 62         <property name="dataSource">
 63             <ref bean="dataSource" />
 64         </property>
 65         <property name="hibernateProperties">
 66             <props>
 67                 <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop><!--hibernate的数据库方言 本示例:sqlserver数据库 -->
 68                 <prop key="hibernate.show_sql">true</prop><!-- 显示sql语句 -->
 69                 <prop key="hibernate.format_sql">true</prop><!-- 格式化控制台显示sql语句 -->
 70                  <prop key="hibernate.hbm2ddl.auto">update</prop><!-- 如果映射文件在数据库中无表,自动生成表 -->
 71             </props>
 72         </property>
 73
 74         <!-- 导入hibernate的映射文件 实体类.hbm.xml文件 -->
 75         <property name="mappingDirectoryLocations">
 76             <list>
 77                 <value>classpath:/org/ledger/entity</value>
 78             </list>
 79         </property>
 80
 81     </bean>
 82     <!--spring的事务 -->
 83     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
 84         <property name="sessionFactory">
 85             <ref bean="sessionFactory" />
 86         </property>
 87     </bean>
 88
 89     <!-- 事务的配置。类似于切点。 -->
 90     <tx:advice id="txadvice" transaction-manager="transactionManager">
 91         <tx:attributes>
 92                <tx:method name="saveSysLog" propagation="REQUIRES_NEW" /><!--requires_new:新建事务,如果当前存在事务,把当前事务挂起 -->
 93             <tx:method name="get*" propagation="REQUIRED"   read-only="true"/><!--required:如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中 -->
 94             <tx:method name="find*" propagation="REQUIRED"  read-only="true"/>
 95             <tx:method name="query*" propagation="REQUIRED" read-only="true"/>
 96             <tx:method name="*" propagation="REQUIRED" />
 97         </tx:attributes>
 98     </tx:advice>
 99
100      <!-- 配置日志的增强类(说白了,所有请求的连接点都要先到该类中的方法跑一下。)-->
101     <bean id="logAspect" class="org.ledger.interceptor.LogAspect" autowire="byType"></bean>
102
103     <!-- aop:config节点中可以定义多个切面 -->
104     <aop:config proxy-target-class="true"> <!-- 该值为true,表示用spring的cglib动态代理技术代理切面,为false时表明以jdk的动态代理技术代理切面 -->
105         <!-- 配置事务的切点 -->
106         <aop:pointcut id="serviceMethods" expression="execution(* org.ledger.service.*Service.*(..))"/> <!-- 定义一个切点 -->
107
108
109         <!-- <aop:advisor>”则定义了在哪些连接点应用什么 -->
110         <!-- 此节点时配置切点加上事务管理 (spring自身的事务管理类,给所有的业务类加上事务,面向切面的)-->
111         <!-- advisor 是spring aop中的一个概念。
112              advisor 可以翻译为增强器, 他是切入点(pointcut)和advice 的适配器。 它有两部门组成:一个增强以及一个说明在何处增强的切入点。
113                              增强器完整的模块化了一个方面(因为一个方面,就是由在什么地方增强和怎么增强组成的) 。 增强和切入点可以复用。 -->
114         <aop:advisor advice-ref="txadvice" pointcut-ref="serviceMethods" /> <!-- 切点和增强的复合物,advice-ref引用的是增强,pointcut-ref引用的切点 -->
115
116
117         <!-- 配置日志 (程序员开发的)-->
118         <!-- “<aop:aspect>”实际上是定义横切逻辑,就是在连接点上做什么 -->
119         <aop:aspect ref="logAspect"><!-- 定义一个切面 ,ref引用的是增强方法所在的bean。本示例,表示该日志切面的操作方法都在logAspect所代表的java类中-->
120             <aop:pointcut expression="execution(* org.ledger.service.*Service.*(..))" id="logPointcut" /><!-- 定义日志的切点,动态代理接口 -->
121             <aop:after-returning method="saveLog" pointcut-ref="logPointcut" /><!-- 增强的方法+切点。意思是,执行完该切点后的连接点(方法),调用增强方法 -->
122             <aop:after-throwing method="saveLogHasThrowing" pointcut-ref="logPointcut" /><!-- 增强方法+切点。意思是,执行该切点的连接点(方法)抛出异常,调用增强方法 -->
123         </aop:aspect>
124     </aop:config>
125
126     <!-- 给项目加入webservice的扫描器(应该是注解) -->
127     <context:component-scan base-package="org.ledger.webservice"></context:component-scan>
128     <!-- 导入action dao service 等的bean节点配置-->
129     <import resource="applicationContext-dao.xml"/>
130     <import resource="applicationContext-service.xml"/>
131     <import resource="applicationContext-webservice.xml"/>
132     <import resource="applicationContext-action.xml"/>
133     </beans>

时间: 2024-08-05 18:01:33

ssh框架中spring整合hibernate的配置文件模板(带详细注释)的相关文章

SSH框架中Spring框架搭建的初步理解(一)

接手基于SSH框架的web项目已经一个月有余了.早有听说javaweb三大框架,第一次接触,先来说下感受. 我感觉SSH框架最明显的优点有如下: 采用MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现. 通过配置文件,就可以掌握整个系统各个部分之间的关系. 通过AOP,可以实现事务管理和日志管理. 其中Spring框架能使你通过最简单可行的方法来解决问题,这是非常高效的.但是它的搭建也略微复杂,尤其是对于我这样的新手来说,所以开此篇记录一下SPring框架的搭建: 创建web项目,导入SS

SSH框架中spring的原理

在ssh项目中,是有明确分工的,spring的作用就相当于将struts和hibernate连接起来,是将两个没有关系的框架的特性,方法,action都放在spring的配置文件中使他们建立关系.取他门各自所长.而这些做法他们自己不知道,他们是听命于spring调度的,他的的任务只是做好自己的事情.    这样做的好处就是任务结构分明,struts只管理显示与做什么,hibernate只关心怎么做,而spring就相当于领导,所以一切的类都要交给spring的工厂创建,这是一种良好的开发模式,体

SSH框架中 Spring设置定时器 Quartz

一,首先下载quartz-1.6.0.jar架包,到lib目录下 二,写你自己定时器业务方法 package com.lbnet.lzx.timing; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.supp

在SSH框架中使用Spring的好处(转)

以下是我总结下今天笔试中SSh中的总结: 在SSH框架中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来做应用层的,他它负责调用业务逻辑serivce层.所以SSH框架的流程大致是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)    struts负责控制Service(业务逻辑处理类),从而控制了

【SSH框架】系列之 Spring 整合 Hibernate 框架

1.SSH 三大框架整合原理 Spring 与 Struts2 的整合就是将 Action 对象交给 Spring 容器来负责创建. Spring 与 Hibernate 的整合就是将 SessionFactory 交给 Spring 容器来负责维护,并且 Spring 容器负责 Session 维护以及相关的 AOP 事务. 2.Spring 整合 Hibernate 框架 (1).新建 web 项目,导入 Spring 和 Hibernate 框架所需要的 jar 包,如下图所示: (2).

SSH程序框架之Spring与HIbernate整合

spring整合hibernate 有两种方式 1.注解方式 2.xml方式实现 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让Hibernate使用上Spring的声明式事务 1.xml方式: 大概架构: 我们将会创建一个账户类,实现添加的功能 首先先添加Spring 和 HIbernate的jar包节点: 1 <dependencies> 2 <dependency> 3 <groupId&g

spring在SSH框架中的作用

从网上了搜了下sring 在ssh中起的作用,在百度知道上看到下面的回答,觉得简单移动,记录下来备查,原文地址: http://zhidao.baidu.com/link?url=JiONrax-Flkpi5hqs_g1HQOrMm1Dk8U1WT88l5T0Gg01bm3M8fMcjUCpqastVxQTd63gxUl5NLyHUQPdq6E-OK 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行

Spring框架学习(4)spring整合hibernate

内容源自:spring整合hibernate    spring整合注解形式的hibernate 这里和上一部分学习一样用了模板模式, 将hibernate开发流程封装在ORM层提供的模板类HibernateTemplate中,通过在DAO中对模板类的使用,实现对传统hibernate开发流程的代替. 一.先来看看Hibernate的传统开发流程: 1) 配置SessionFactory对象 hibernate.cfg.xml <session-factory> a 数据源 driver_cl

用MyEclipse搭建SSH框架(Struts2 Spring Hibernate)

1.new一个web project. 2.右键项目,为项目添加Struts支持. 点击Finish.src目录下多了struts.xml配置文件. 3.使用MyEclipse DataBase Explorer建立数据源. new一个数据源.填入数据源信息. 点击test Driver,如果成功显示: 点击OK,点击Finish. 4.为项目添加Spring支持. 选择五个包,之后JAR Library Installation为如下图. 点击Next. 默认点击Finish. 5.为项目添加