zoukankan      html  css  js  c++  java
  • 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.80SQL2005;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>
    View Code
  • 相关阅读:
    [收藏转贴]struct探索·extern "C"含义探索 ·C++与C的混合编程·C 语言高效编程的几招
    [收藏转贴]构建RESTful风格的WCF服务
    [转贴] C/C++中动态链接库的创建和调用
    [转贴]WebService的简单实现 C++
    谷歌已经对Android的开源严防死守
    如何成为一名黑客?
    当程序员思路被打断
    编辑语言是这样的
    开发者需要掌握多少门语言?
    程序员的六大优势
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/4048625.html
Copyright © 2011-2022 走看看