最近在使用c3p0的連接池的時候,發現了一些小bug,就改換了proxool,但是發現和Struts2+spring+JPA(hibernate)整合的時候出現一堆問題,頭疼的要命,翻了一上午終於找到解決辦法了。
第一種就是自己寫一個filter
然後
在web.xml 中 加載監聽器
<context-param>
<param-name>xmlFile</param-name>
<param-value>路徑/proxool.xml</param-value>
</context-param>
<listener>
<listener-class>路徑.ProxoolListener</listener-class>
</listener>
第二種適用於hibernate
<bean id="sessionFactory" class=" ">
<property name="configLocation" value="classpath:conf/hibernate.cfg.xml">
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.proxool.pool_alias">DbPool</prop>
<prop key="hibernate.proxool.xml">proxool.xml</prop>
<prop key="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider
</prop>
</props>
</property>
</bean>
這種辦法有個缺點,無法調用jdbc。
還有第三種也就是jpa的方式
打開src 中的meta-inf下的persistence.xml
信息如下:
修改applicationContext.xml
web.xml中不需要變化,仍然可以使用filter 這樣子就算成功了。但是和上面第二種一樣,會有jdbc沒辦法調用的情況。頭疼
誰還有更好的辦法,一定要告訴我。