SpringBoot_数据访问-整合Druid&配置数据源监控
Posted 猴子特种兵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot_数据访问-整合Druid&配置数据源监控相关的知识,希望对你有一定的参考价值。
第一步,在pom.xml文件中导入druid的文件信息 <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version> </dependency>
第二部,在application.yml配置文件中添加数据源信息 spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/test driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource # schema: # - classpath:oa_course.sql 数据库要执行的脚本 # 数据源其他配置 initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙 filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
正常druid的一些配置信息是不能使用的需要我们手动写一个配置类:
package com.baoxing.springboot.config; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewFilter; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** * Created by chengbx on 2018/6/10. */ @Configuration public class DruidConfig { @ConfigurationProperties(prefix = "spring.datasource") @Bean(name = "dataSource") public DataSource druid(){ return new DruidDataSource(); } //配置Druid的监控 //1.配置一个管理后台的Servlet @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); Map<String,String> initParas = new HashMap<>(); initParas.put("loginUsername","cbx");//后台登录用户 initParas.put("loginPassword","aaa147");//后台登录密码 initParas.put("allow","");//默认允许所有访问 servletRegistrationBean.setInitParameters(initParas); return servletRegistrationBean; } //2.配置一个监控的filter @Bean public FilterRegistrationBean webstatFilter(){ FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); filterRegistrationBean.setFilter(new WebStatFilter()); Map<String,String> initParas = new HashMap<>(); initParas.put("exclusions","*.js,*.css,/druid/*");//哪些文件不进行过滤 filterRegistrationBean.setInitParameters(initParas); filterRegistrationBean.setUrlPatterns(Arrays.asList("/*")); return filterRegistrationBean; } }
手动写一个测试类,调用数据库测试 package com.baoxing.springboot.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; import java.util.Map; /** * Created by chengbx on 2018/6/10. */ @Controller public class HelloController { @Autowired private JdbcTemplate jdbcTemplate; @ResponseBody @GetMapping("/query") public List<Map<String,Object>> map(){ List<Map<String,Object>> list = jdbcTemplate.queryForList("select * from oa_course"); return list; } }
出现如下界面则说明数据源配置成功
以上是关于SpringBoot_数据访问-整合Druid&配置数据源监控的主要内容,如果未能解决你的问题,请参考以下文章