您的位置:首页 > 产品设计 > UI/UE

阿里Druid连接池配置使用

2016-06-30 14:49 627 查看
项目中有用到数据库连接池技术,这次我们使用阿里公司的Druid连接池。Druid对数据库的监控做的很好,可以详细统计SQL执行的性能。
具体使用:如果是maven项目,加入如下依赖码到pom.xml文件中即可。
<span style="font-size:18px;"><span style="white-space:pre">	</span></span><pre name="code" class="html"><span style="white-space:pre">	</span><dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>版本自选</version>
<span style="white-space:pre">	</span></dependency>
</pre>如果没有用到maven,则需要导包。在开源中国的项目中去下载和查看相关文档。http://www.oschina.net/p/druid<pre>
具体配置如下,这个配置基本能满足项目需要。
</pre><pre name="code" class="html"><span style="font-size:18px;"><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="jdbc:oracle:thin:@ip:1521:服务名" />
<property name="username" value="用户名" />
<property name="password" value="密码" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="10" />
<property name="minIdle" value="30" />
<property name="maxActive" value="300" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="3600000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="30000" />
<property name="validationQuery" value="SELECT 'x' FROM dual" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
<!-- 配置监控统计拦截的filters -->
<property name="filters" value="stat"></property>
<!-- <property name="filters" value="log4j" />
<property name="proxyFilters">
<list>
<ref bean="stat-filter" />
<ref bean="wall-filter" />
</list>
</property> -->
</bean>
<!-- 如果需要将统计信息写入log,就进行下面的配置,并在web.xml中作相应配置-->
<!-- 配置阿里云的sql注入检测 -->
<bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter">
对被认为是攻击的SQL进行LOG.error输出
<property name="logViolation"  value="true"/>
对被认为是攻击的SQL抛出SQLExcepton
<property name="throwException" value="false" />
</bean>

<!--配置阿里云连接池状态监控-->
<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
监控sql执行大于1s的sql
<property name="slowSqlMillis" value="1000" />
<property name="logSlowSql" value="true" />
<property name="mergeSql" value="true" />
</bean></span>
<span style="font-size:18px;">以下是web.xml中<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">内置监控界面的配置:</span></span>
<span style="font-size:18px;"><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"></span></span><pre name="code" class="html"><servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<span style="font-size:18px;"><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">
</span></span>
大致配置就是这样,在项目启动后,输入:http://[ip]:[端口]/[项目名(看具体路径)]/druid/index.html

就可以打开Druid的监控界面。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息