<? 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:aop ="http://www.springframework.org/schema/aop"
             xmlns:tx ="http://www.springframework.org/schema/tx"
             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/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" >
     < context:annotation-config />
     < context:component-scan base-package ="com.lixing.shop" />
    
    <!-- Jdbc Description -->
     < bean class ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
         < property name ="locations" value ="classpath:jdbc.properties" />
   </ bean >

   < bean id ="dataSource" destroy-method ="close" class ="org.apache.commons.dbcp.BasicDataSource" >
     < property name ="driverClassName" value ="${jdbc.driverClassName}" />
     < property name ="url" value ="${jdbc.url}" />
     < property name ="username" value ="${jdbc.username}" />
     < property name ="password" value ="${jdbc.password}" />
   </ bean >
  
  <!-- SessionFactory Description -->
   < bean id ="sessionFactory" class ="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >
     < property name ="dataSource" ref ="dataSource" />
     < property name ="packagesToScan" >
         < list >
           < value >com.lixing.shop.model </ value >        
         </ list >
     </ property >
     < property name ="hibernateProperties" >
         < props >
             < prop key ="hibernate.dialect" >org.hibernate.dialect.MySQLDialect </ prop >
             < prop key ="hibernate.show_sql" >true </ prop >
             < prop key ="hibernate.format_sql" >true </ prop >
         </ props >
     </ property >
   </ bean >
  
  <!-- HinerbateTemplate Description -->
   < bean id ="hibernateTemplate" class ="org.springframework.orm.hibernate3.HibernateTemplate" >
     < property name ="sessionFactory" ref ="sessionFactory" > </ property >
   </ bean >
  
  <!-- Transaction Description -->
   < bean id ="txManager" class ="org.springframework.orm.hibernate3.HibernateTransactionManager" >
     < property name ="sessionFactory" ref ="sessionFactory" />
   </ bean >
  
  <!-- Transaction Advice Desctiption -->  
     < tx:advice id ="txAdvice" transaction-manager ="txManager" >
         < tx:attributes >
         < tx:method name ="is*" read-only ="true" />
             < tx:method name ="list*" read-only ="true" />
             < tx:method name ="find*" read-only ="true" />
             < tx:method name ="get*" read-only ="true" />            
             < tx:method name ="upda*" />
         </ tx:attributes >
     </ tx:advice >
  
   < aop:config >
     < aop:pointcut     id ="transactionPointcut" expression ="execution(public * com.lixing.shop.service.*.*(..))" />
     < aop:advisor advice-ref ="txAdvice" pointcut-ref ="transactionPointcut" />
   </ aop:config >  
</ beans >
<!--Spring3.0 需要 asm.jar -->