spring boot 集成druid,监控配置

添加maven依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.18</version>
        </dependency>

配置数据源相关信息

# 数据库访问配置
# 主数据源,默认的
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useOldAliasMetadataBehavior=true
spring.datasource.username=root
spring.datasource.password=root

# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒 
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小 
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 
spring.datasource.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
#spring.datasource.useGlobalDataSourceStat=true

配置监控统计功能

    第一种方式
/**
 * druid数据源状态监控.
 *
 */

@WebServlet(urlPatterns="/druid/*",
           initParams={
                   @WebInitParam(name="allow",value="192.168.1.72,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)
                    @WebInitParam(name="deny",value="192.168.1.73"),// IP黑名单 (存在共同时,deny优先于allow)
                    @WebInitParam(name="loginUsername",value="admin"),// 用户名
                    @WebInitParam(name="loginPassword",value="123456"),// 密码
                    @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
           }
)
public class DruidStatViewServlet extends StatViewServlet{

    private static final long serialVersionUID = -7799874061866519411L;

}


/**
 * druid过滤器.
 *
 */
@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
    initParams={
             @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
     }
)
public class DruidStatFilter extends WebStatFilter{

}

最后在启动类上添加@ServletComponentScan使spring能够扫描到我们自己编写的servlet和filter。

地址http://localhost:8081/druid/index.html

    第二种方式:使用代码注册Servlet
@Configuration
public class DruidConfiguration {

    /**
     * 注册一个StatViewServlet
     * 
     * @return
     */
    @Bean
    public ServletRegistrationBean druidStatViewServle() {
        // org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),
                "/druid/*");

        // 添加初始化参数:initParams

        // 白名单:
        servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        // IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not
        // permitted to view this page.
        servletRegistrationBean.addInitParameter("deny", "192.168.1.73");
        // 登录查看信息的账号密码.
        servletRegistrationBean.addInitParameter("loginUsername", "admin");
        servletRegistrationBean.addInitParameter("loginPassword", "123456");
        // 是否能够重置数据.
        servletRegistrationBean.addInitParameter("resetEnable", "false");
        return servletRegistrationBean;
    }

    /**
     * 注册一个:filterRegistrationBean
     * 
     * @return
     */
    @Bean
    public FilterRegistrationBean druidStatFilter2() {

        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

        // 添加过滤规则.
        filterRegistrationBean.addUrlPatterns("/*");

        // 添加不需要忽略的格式信息.
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*");
        return filterRegistrationBean;
    }
}

启动应用直接访问就行 http://localhost:8081/druid/index.html

转载至:http://412887952-qq-com.iteye.com/blog/2292362

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于构建Java应用程序的框架,它能够简化开发过程,提高生产力。它通过提供一系列的开箱即用的特性和配置,允许我们快速构建可运行的、独立的Spring应用程序。 Druid是一个开源的Java数据库连接池框架,它提供了一组可扩展的API,用于管理和监控数据库连接。Druid具有优秀的性能和丰富的扩展功能,可以有效地管理大量的数据库连接。 MongoDB是一个开源的文档数据库,它使用JSON风格的文档格式存储数据。MongoDB具有高可用性、可扩展性和灵活的数据模型,适用于许多不同类型的应用程序。 Spring BootDruid和MongoDB的结合可以带来一些好处。首先,Druid可以作为Spring Boot应用程序的数据库连接池,提供高性能和高可用性的数据库连接管理。它可以监控和管理数据库连接的使用情况,避免连接泄漏和过多的连接创建。 其次,Spring Boot与MongoDB的集成使得开发人员能够轻松地使用MongoDB作为应用程序的数据存储。Spring Boot提供了与MongoDB的无缝集成,简化了数据访问的配置和操作。 最后,Spring BootDruid和MongoDB的集成可以帮助开发人员更好地应对大规模的数据存储和处理需求。Druid的连接池管理功能可以提高应用程序的性能和可靠性,而MongoDB的扩展性和灵活性可以满足不同类型的数据存储需求。 综上所述,Spring BootDruid和MongoDB的结合可以提供高性能、高可用性和灵活的数据存储和管理解决方案,适用于各种类型的Java应用程序开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值