SpringBoot下配置Druid
什么是Druid:Druid是阿里发开的一套基于database的监控平台,相对于其他监控来说对于中文的支持更亲民..
前言:最近这段时间发现项目整体运行响应速度较慢,打算对系统进行深层次的优化(尤其是sql方面),所以打算内置Druid在系统中,用来监控系统的运行情况.
传统的web项目中配置Druid在其github上已有明确的文档,此处不在赘述,如有需要可以参考:https://github.com/alibaba/druid
下面我们来谈谈在springboot中如何内置Druid.
1.需要依赖的jar包:
<!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency>
特别说明一下:如果使用postgresql的朋友请选择:
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.0.0</version> </dependency>
目前我发现的是在这个版本下可用,其他版本可能会出现一些奇怪的报错.
2.配置数据库驱动:
@Configuration public class DataSourceConfig { @ConfigurationProperties(prefix = "spring.datasource") @Bean("dataSource") public DataSource druid(){ return new DruidDataSource(); } @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet()); Map<String, String> initParameters=new HashMap<>(); initParameters.put("loginUsername","***"); initParameters.put("loginPassword","***"); initParameters.put("resetEnable","true"); bean.setInitParameters(initParameters); bean.setUrlMappings(Arrays.asList("/druid/*")); return bean; } @Bean public FilterRegistrationBean webFileter(){ FilterRegistrationBean bean = new FilterRegistrationBean(new WebStatFilter()); Map<String, String> initParameters=new HashMap<>(); initParameters.put("exclusions","*.js,*.css,*.png,*.jpg,/druid/*"); bean.setInitParameters(initParameters); bean.setUrlPatterns(Arrays.asList("/*")); return bean; } }
关于参数的一些说明:
loginUsername: 登录监控系统的用户名
loginPassword: 登录监控控系统的密码
resetEnable: 是否允许重置数据
还可以设置的参数包括:
allow: 允许登录的ip地址(不填默认为允许所有)
deny: 拒绝登录的ip地址(拒绝的优先级比同意的优先级高)
3.配置数据库的相关数据:
spring.datasource.driverClassName= spring.datasource.username= spring.datasource.password= spring.datasource.url= spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.maxActive=80 spring.datasource.queryTimeout=3000 spring.datasource.poolPreparedStatements=true spring.datasource.filters=stat,wall spring.datasource.connectionProperties=druid.stat.mergeSql=true;druuid.stat.slowSqlMillis=500 spring.datasource.useGlobalDataSourceStat=true spring.datasource.validationQuery=select 1 from dual
大体上就只需要这几部就搞定啦!当项目启动之后可以访问*/druid/目录来查看监控页面,这只是一个简单的配置,如果想要实现更加完善或者个性化的功能可以参考官网自主改造~