最近在使用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没办法调用的情况。头疼
谁还有更好的办法,一定要告诉我。