<?
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 -->