在Spring配置文件中初始化proxool:
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
< bean id ="SessionFactory"
class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean" singleton ="true" >
< property name ="hibernateProperties" >
< props >
< prop key ="hibernate.dialect" >
org.hibernate.dialect.MySQLDialect
</ prop >
< prop key ="hibernate.show_sql" > false </ prop >
< prop key ="hibernate.cglib.use_reflection_optimizer" > true </ prop >
<prop key="hibernate.proxool.xml">proxool.xml</prop>
<prop key="hibernate.proxool.pool_alias">ggpcdb</prop>
< prop key ="hibernate.cache.provider_class" >
org.hibernate.cache.EhCacheProvider
</ prop >
< prop key ="hibernate.cache.use_query_cache" >
true
</ prop >
</ props >
</ property >
< property name ="mappingDirectoryLocations" >
< list >
< value > classpath:/ggpc/resource </ value >
</ list >
</ property >
</ bean >
< bean id ="hibernateTemplate"
class ="org.springframework.orm.hibernate3.HibernateTemplate" >
< property name ="sessionFactory" >
< ref bean ="SessionFactory" />
</ property >
< property name ="cacheQueries" >
< value > true </ value >
</ property >
</ bean >
< bean id ="transactionManager" class ="org.springframework.orm.hibernate3.HibernateTransactionManager" >
< property name ="sessionFactory" >
< ref local ="SessionFactory" />
</ property >
</ bean >
< bean id ="UserDAO" class ="ggpc.business.user.bean.UserDAO" >
< property name ="hibernateTemplate" >
< ref bean ="hibernateTemplate" />
</ property >
</ bean >
< bean id ="UserDAOProxy"
class ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >
< property name ="transactionManager" >
< ref bean ="transactionManager" />
</ property >
< property name ="target" >
< ref local ="UserDAO" />
</ property >
< property name ="transactionAttributes" >
< props >
< prop key ="save" > PROPAGATION_REQUIRED </ prop >
< prop key ="update" > PROPAGATION_REQUIRED </ prop >
< prop key ="delete" > PROPAGATION_REQUIRED </ prop >
< prop key ="get*" > PROPAGATION_REQUIRED,readOnly </ prop >
< prop key ="find*" > PROPAGATION_REQUIRED,readOnly </ prop >
</ props >
</ property >
</ bean >
< bean id ="userService"
class ="ggpc.business.user.service.UserService" >
< property name ="userdao" >
< ref local ="UserDAOProxy" />
</ property >
</ bean >
</ beans >
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
< bean id ="SessionFactory"
class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean" singleton ="true" >
< property name ="hibernateProperties" >
< props >
< prop key ="hibernate.dialect" >
org.hibernate.dialect.MySQLDialect
</ prop >
< prop key ="hibernate.show_sql" > false </ prop >
< prop key ="hibernate.cglib.use_reflection_optimizer" > true </ prop >
<prop key="hibernate.proxool.xml">proxool.xml</prop>
<prop key="hibernate.proxool.pool_alias">ggpcdb</prop>
< prop key ="hibernate.cache.provider_class" >
org.hibernate.cache.EhCacheProvider
</ prop >
< prop key ="hibernate.cache.use_query_cache" >
true
</ prop >
</ props >
</ property >
< property name ="mappingDirectoryLocations" >
< list >
< value > classpath:/ggpc/resource </ value >
</ list >
</ property >
</ bean >
< bean id ="hibernateTemplate"
class ="org.springframework.orm.hibernate3.HibernateTemplate" >
< property name ="sessionFactory" >
< ref bean ="SessionFactory" />
</ property >
< property name ="cacheQueries" >
< value > true </ value >
</ property >
</ bean >
< bean id ="transactionManager" class ="org.springframework.orm.hibernate3.HibernateTransactionManager" >
< property name ="sessionFactory" >
< ref local ="SessionFactory" />
</ property >
</ bean >
< bean id ="UserDAO" class ="ggpc.business.user.bean.UserDAO" >
< property name ="hibernateTemplate" >
< ref bean ="hibernateTemplate" />
</ property >
</ bean >
< bean id ="UserDAOProxy"
class ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >
< property name ="transactionManager" >
< ref bean ="transactionManager" />
</ property >
< property name ="target" >
< ref local ="UserDAO" />
</ property >
< property name ="transactionAttributes" >
< props >
< prop key ="save" > PROPAGATION_REQUIRED </ prop >
< prop key ="update" > PROPAGATION_REQUIRED </ prop >
< prop key ="delete" > PROPAGATION_REQUIRED </ prop >
< prop key ="get*" > PROPAGATION_REQUIRED,readOnly </ prop >
< prop key ="find*" > PROPAGATION_REQUIRED,readOnly </ prop >
</ props >
</ property >
</ bean >
< bean id ="userService"
class ="ggpc.business.user.service.UserService" >
< property name ="userdao" >
< ref local ="UserDAOProxy" />
</ property >
</ bean >
</ beans >