Spring 3 Hibernate 3.0 annotation proxool连接池配置
来源:互联网 发布:带网络的电视机 编辑:程序博客网 时间:2024/06/10 18:56
由于Hibernate自带的链接池效率低效,并且有很多bug.所以官方并不推荐使用,推荐使用诸如proxool的连接池来代替Hibernate。
该配置方法是由Spring来接管proxool连接池,不用额外增加Hibernate配置文件,以及数据库与持久对象的映射文件(使用注解的方式)。
PS: 不要忘记将Hibernate库的 lib/optional/proxool文件夹中的proxool*.jar 加入到classpath中,否则无法找到proxool Connection Provider class.
Spring的配置文件( applicationContext.xml )如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><context:component-scan base-package="com.baidu"/><bean id="sessionFactory class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><description>Annotation Hibernate from proxool </description><property name="packageToScan"><value>com.baidu.model</value></property><property name="hibernateProperties"><props><prop key="hibernate.proxool.xml">proxool.xml</prop> <!-- 在与该文件相同目录下建立proxool.xml 文件 --><prop key="hibernate.proxool.pool_alias>dbpool</prop> <!-- 必须保证该处的别名与proxool.xml文件中声明的相同 --><prop key="hibernate.cglib.use_reflection_optimizer>true</prop><prop key="hibernate.connection.release_mode">auto</prop> <!-- 必须保证该选项为true,保证连接池的效率 --><prop key="hibernate.show_sql">true</prop><prop key="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</prop></props></property></bean><bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory"></bean><tx:annotation-driven transaction-manager="txManager"/></beans>
与该文件对应的proxool文件如下:
<?xml version="1.0" encoding="UTF-8"?><something-else-entirely> <proxool> <alias>dbpool</alias> <!-- 与上文的database alias定义的相同 --> <driver-url>jdbc:mysql://localhost:3306/springdemo</driver-url> <!-- 根据自己使用的数据库的类别来修改 --> <driver-class>com.mysql.jdbc.Driver</driver-class> <driver-properties> <property name="user" value="root"/> <property name="password" value="root"/> </driver-properties> <house-keeping-sleep-time>30</house-keeping-sleep-time> <maximum-connection-count>1000</maximum-connection-count> <minimum-connection-count>10</minimum-connection-count> <simultaneous-build-throttle>100</simultaneous-build-throttle> </proxool></something-else-entirely>
该文件的设置比较简单,一般都能够通过英文理解字面上的意思。
最后有兴趣的可以在Web.xml文件中添加监控链接,加入监控页面观察加入连接池之后,所带来的连接数据库上的时间和资源消耗对比。这里的教程网上有很多。不过最简单的方法是通过下载一个GUI来观测。不用额外的代码和配置。MySQL,可以使用MySQL Administer以上内容转自:http://www.cnblogs.com/papertigerv5/archive/2011/11/04/2235919.html
总结:
1.添加proxool-0.9.1.jar到lib下面
2.新建proxool.xml
3.修改spring的applicationContext.xml添加下面的代码:
<prop key="hibernate.proxool.xml">proxool.xml</prop> <!-- 在与该文件相同目录下建立proxool.xml 文件 --><prop key="hibernate.proxool.pool_alias">DBPool</prop> <!-- 必须保证该处的别名与proxool.xml文件中声明的相同 --><prop key="hibernate.cglib.use_reflection_optimizer">true</prop><prop key="hibernate.connection.release_mode">auto</prop> <!-- 必须保证该选项为true,保证连接池的效率 --><prop key="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</prop>
<!-- 配置hibernate属性 --><property name="hibernateProperties"><props><prop key="hibernate.proxool.xml">proxool.xml</prop> <!-- 在与该文件相同目录下建立proxool.xml 文件 --><prop key="hibernate.proxool.pool_alias">DBPool</prop> <!-- 必须保证该处的别名与proxool.xml文件中声明的相同 --><prop key="hibernate.cglib.use_reflection_optimizer">true</prop><prop key="hibernate.connection.release_mode">auto</prop> <!-- 必须保证该选项为true,保证连接池的效率 --><prop key="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</prop><!-- 是否在后台显示sql,开发中显示,上线后关闭 --><prop key="hibernate.show_sql">true</prop><!-- 是否生成hibernate统计 --><prop key="hibernate.generate_statistics">false</prop><prop key="hibernate.connection.SetBigStringTryClob">true</prop> <!-- <prop key="hibernate.jdbc.batch_size">0</prop> --></props></property>
- Spring 3 Hibernate 3.0 annotation proxool连接池配置
- Spring+Struts+Hibernate proxool连接池配置
- Spring+Hibernate+Proxool连接池
- Hibernate 配置Proxool连接池
- hibernate 配置proxool连接池
- Spring+Hibernate 配置和使用c3p0和proxool连接池
- Spring+Hibernate 配置和使用c3p0和proxool连接池
- Spring+Hibernate的连接池配置(c3p0,proxool)
- Spring+Hibernate的连接池配置(c3p0,proxool)
- proxool连接池的配置【结合spring和hibernate】
- Spring+Hibernate+Proxool两个数据库连接池配置
- Spring+Hibernate与proxool连接池的配置
- Spring 配置proxool连接池
- Spring配置proxool连接池
- (绝对有效)sqlserver2000链接proxool连接池,终于配置出spring整合struts,hibernate annotation(pool数据池,sqlserver2000数据库)
- Spring+Hibernate+Proxool配置
- Hibernate + Proxool配置 并监控proxool连接池
- spring配置详解-proxool连接池配置
- linux pgrep命令
- 高级性能测试工程师进阶系列课程
- 关于Hadoop支持部署LZO(后续)
- iframe编辑器光标位置插入内容方法,兼容IE和Firefox
- 根据数据库批量生成实体类
- Spring 3 Hibernate 3.0 annotation proxool连接池配置
- Qt Creator 快捷键
- PHPExcel:用于Excel等文档生成的PHP开源类库
- RabbitMq介绍
- OEM11g grid control重新配置时SYSMAN无法创建后手工删除
- MTK 6573平台 android 2.3系统上添加维文的详细步骤
- ExtJS第一天实例
- Win7 eclipse Hadoop Failed to set permissions of path .
- 水波纹这样实现的,很简单的