O Druid é considerado um dos melhores pools de conexão de banco de dados disponíveis para Java. Esta biblioteca oferece recursos poderosos de monitoramento e alta capacidade de extensão para aplicações empresariais.
Para obter a biblioteca, você pode utilizar o repositório central do Maven. A dependência está disponível em: http://central.maven.org/maven2/com/alibaba/druid/
A seguir, apresentamos as configurações necessárias para integrar o Druid em seu projeto.
Configuração no web.xml
1 <filter>
2
3 <filter-name>DruidWebStatFilter</filter-name>
4
5 <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
6
7 <init-param>
8
9 <param-name>exclusions</param-name>
10
11 <param-value>/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
12
13 </init-param>
14
15 </filter>
16
17 <filter-mapping>
18
19 <filter-name>DruidWebStatFilter</filter-name>
20
21 <url-pattern>/*</url-pattern>
22
23 </filter-mapping>
24
25
26
27 <!--
28 Monitoramento Druid -->
29
30 <servlet>
31
32 <servlet-name>DruidStatView</servlet-name>
33
34 <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
35
36 </servlet>
37
38 <servlet-mapping>
39
40 <servlet-name>DruidStatView</servlet-name>
41
42 <url-pattern>/druid/*</url-pattern>
43
44 </servlet-mapping>
Configuração de integração com Spring
1 <!-- Configuração do DataSource -->
2 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
3 <property name="url" value="jdbc:mysql://127.0.0.1:3306/paynow?characterEncoding=UTF-8"/>
4 <property name="username" value="root"/>
5 <property name="password" value="root"/>
6
7 <!-- Tamanho inicial das conexões -->
8 <property name="initialSize" value="0" />
9 <!-- Número máximo de conexões ativas -->
10 <property name="maxActive" value="20" />
11 <!-- Número máximo de conexões ociosas -->
12 <property name="maxIdle" value="20" />
13 <!-- Número mínimo de conexões ociosas -->
14 <property name="minIdle" value="0" />
15 <!-- Tempo máximo de espera por uma conexão em milissegundos -->
16 <property name="maxWait" value="60000" />
17 <property name="validationQuery" value="SELECT 'x' from dual" />
18 <property name="testOnBorrow" value="false" />
19 <property name="testOnReturn" value="false" />
20 <property name="testWhileIdle" value="true" />
21 <!-- Intervalo de tempo para verificação de conexões ociosas em milissegundos -->
22 <property name="timeBetweenEvictionRunsMillis" value="60000" />
23 <!-- Tempo mínimo de vida de uma conexão no pool em milissegundos -->
24 <property name="minEvictableIdleTimeMillis" value="25200000" />
25 <!-- Ativar remoção de conexões abandonadas -->
26 <property name="removeAbandoned" value="true" />
27 <!-- Timeout para considerar uma conexão abandonada em segundos -->
28 <property name="removeAbandonedTimeout" value="1800" />
29 <!-- Habilitar log para conexões abandonadas -->
30 <property name="logAbandoned" value="true" />
31 <!-- Filtros para monitoramento do banco de dados -->
32 <property name="filters" value="mergeStat" />
33 </bean>
O DataSource posui uma interface de monitoramento entegrada. Para acessá-la, basta adicionar "/druid/index.html" ao final da URL do seu projeto no navegador.