ssm整合druid监控功能入门纯注解 您所在的位置:网站首页 druid监控页面说明 ssm整合druid监控功能入门纯注解

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

2023-04-15 17:41| 来源: 网络整理| 查看: 265

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.stargeSql=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; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有