怎样在JavaEE项目中配置Druid监控及实现对它的权限控制,类似官方文档中的示例: http://110.76.43.235:8080/mini-web/druid/index.html ?Spring或非Spring皆可~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要在JavaEE项目中配置Druid监控并实现对其的权限控制,可以按照以下步骤操作。无论是Spring项目还是非Spring项目,都可以通过类似的方式完成配置。
首先,在项目的pom.xml
文件中添加Druid相关的依赖项。如果使用的是Spring Boot项目,可以通过druid-spring-boot-starter
简化配置:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.19</version>
</dependency>
如果是非Spring项目,则直接引入Druid核心库:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.19</version>
</dependency>
在项目的src/main/resources
目录下创建druid.properties
文件,并配置连接池的基本参数。例如:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://rm-bp**************.mysql.rds.aliyuncs.com:3306/database
username=****
password=****
initialSize=20
minIdle=20
maxActive=100
maxWait=5000
connectTimeout=20000
socketTimeout=60000
这些参数包括数据库驱动、连接地址、用户名和密码,以及连接池的核心配置(如初始连接数、最大连接数等)。
为了启用Druid的内置监控页面,需要在项目中注册一个StatViewServlet
,用于展示监控数据。以下是具体配置方法:
在Spring项目中,可以通过@Bean
注解注册StatViewServlet
和WebStatFilter
:
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class DruidConfig {
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
// 设置允许访问的IP白名单(可选)
bean.addInitParameter("allow", "127.0.0.1");
// 设置登录用户名和密码
bean.addInitParameter("loginUsername", "admin");
bean.addInitParameter("loginPassword", "password");
return bean;
}
@Bean
public FilterRegistrationBean webStatFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean(new WebStatFilter());
// 排除静态资源的监控
bean.addUrlPatterns("/*");
bean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return bean;
}
}
在非Spring项目中,可以在web.xml
中手动配置StatViewServlet
和WebStatFilter
:
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<param-name>loginUsername</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>loginPassword</param-value>
<param-value>password</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Druid监控页面支持简单的权限控制,可以通过设置loginUsername
和loginPassword
来限制访问。此外,还可以通过allow
和deny
参数配置IP白名单或黑名单。例如:
allow=127.0.0.1,192.168.1.100
deny=192.168.1.200
注意:如果未设置allow
和deny
,则默认允许所有IP访问。
完成上述配置后,启动项目并通过浏览器访问Druid监控页面。假设项目运行在本地,端口为8080,则访问地址为:
http://localhost:8080/druid/index.html
输入配置的用户名和密码(如admin/password
),即可查看连接池的监控信息,包括SQL执行情况、连接池状态等。
通过以上步骤,您可以在JavaEE项目中成功配置Druid监控并实现对其的权限控制。