ssm整合druid监控功能入门纯注解

Druid内置提供一个StatFilter,用于统计监控信息。
参考文档:(https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter)
1.创建DruidStatueServlet

//  匹配所有/druid/* 的请求   进行处理
@WebServlet(urlPatterns = "/druid/*",
        initParams = {
        @WebInitParam(name="allow",value = ""),//ip白名单,没有配置或空,则允许所有访问
        @WebInitParam(name="deny",value = ""),//ip黑名单
        @WebInitParam(name = "loginUsername",value = "admin"),//用户名
        @WebInitParam(name="loginPassword",value = "123456"),//密码
        @WebInitParam(name="resetEnable",value="false")//禁用html页面的reset all功能
})
public class DruidStatueServlet extends StatViewServlet {
}

开启后即可以启动服务器,并且通过地址栏访问监控页面,访问规则:
ip:端口号/应用名/druid/login.html
2.创建WebStatFilter过滤器

@WebFilter(urlPatterns = "/*",
       initParams ={
               @WebInitParam(name="exclusions",value="*.js,*.jpg,*.png,*.css,/druid/*"),//忽略后缀
               @WebInitParam(name="profileEnable",value = "true")//开启sql详情
       }
)
public class DruidWebFilter extends WebStatFilter {
}

3.配置DruidDataSource数据源

//数据源
@Bean
public DruidDataSource getDataSource() {
    Properties properties = new Properties();
    try {
        properties.load(SpringMybatisConfig.class.getClassLoader().getResourceAsStream("db.properties"));
    } catch (IOException e) {
        e.printStackTrace();
    }
    DruidDataSource druidDataSource = new DruidDataSource();
    druidDataSource.configFromPropety(properties);
    //配置使用druid内置filter   通过别名,别名...的方式设置
    //stat:开启监控功能过滤器
    try {
        //开启性能监控、sql防火墙、日志
        druidDataSource.setFilters("stat,wall,log4j2");
        //开启慢sql监控,大于1000毫秒的为慢sql,默认是3秒
        druidDataSource.setConnectionProperties("druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000");
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return druidDataSource;
}

4.配置session插件

//sqlSessionFactor创建
@Bean
public SqlSessionFactoryBean getSessionFactoryBean(DruidDataSource dataSource) {
    SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
    sessionFactoryBean.setDataSource(dataSource);
   // org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
    //tkmapper 需要使用  tkmapper提供的configuration
    //默认使用驼峰命名转换
    tk.mybatis.mapper.session.Configuration configuration = new tk.mybatis.mapper.session.Configuration();
    configuration.setLogImpl(Log4j2Impl.class);//设置日志类
    configuration.setMapUnderscoreToCamelCase(true);//设置驼峰命名转换
    configuration.setCallSettersOnNulls(true);//解决查询返回map,null的数据不封装key到map中的问题

    configuration.setObjectWrapperFactory(new MapWrapperFactory());

    sessionFactoryBean.setConfiguration(configuration);

    //设置分页插件
    PageInterceptor pageInterceptor = new PageInterceptor();
    pageInterceptor.setProperties(new Properties());//使用默认配置
    sessionFactoryBean.setPlugins(new Interceptor[]{pageInterceptor});//设置使用插件
    return sessionFactoryBean;
}

5.注解配置spring监控
设置druid 的 aop切面类

@Bean(name = "druidStatInterceptor")//设置druid 的 aop切面类
public DruidStatInterceptor getDruidStatInterceptor() {
    DruidStatInterceptor druidStatInterceptor = new DruidStatInterceptor();
    return druidStatInterceptor;
}

配置spring监控

public BeanNameAutoProxyCreator getAutoProxyCreator() {
    BeanNameAutoProxyCreator beanNameAutoProxyCreator = new BeanNameAutoProxyCreator();
    beanNameAutoProxyCreator.setProxyTargetClass(true);
    beanNameAutoProxyCreator.setBeanNames(new String[]{"*Mapper", "*Service*"});
    beanNameAutoProxyCreator.setInterceptorNames("druidStatInterceptor");
    return beanNameAutoProxyCreator;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值