SpringBoot整合Mybatis实现Druid监控
1、druid数据库连接池之所以使用非常广泛,其最主要的原因在于它可以直接提供性能监控。那么本次针对当前已经实现好的druid配置来进行性能监控的处理配置。
1、如果要想进行druid的性能的监控操作,则需要做一些基础配置,例如:你访问的IP地址是否是白名单。
在配置类中得到数据独毙往源的配置:
package com.gwolf.config;
import com.alibaba.druid.pool.DruidDataSource;
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.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class DruidConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
吐菊 public DataSource druidDataSource() {
return new DruidDataSource();
}
}

2、配置监听操作的servlet。
package com.gwolf.config;
import com.alibaba.druid.pool.DruidDataSource;
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.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class DruidConfig {
@Bean
public ServletRegistrationBean druidServlet() { //主况蚂要实现web监控的配置处理
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
new StatViewServlet(),"/druid/*");
servletRegistrationBean.addInitParameter("allow","127.0.0.1");
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","admin");
servletRegistrationBean.addInitParameter("resetEnable","false");
return servletRegistrationBean;
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource() {
return new DruidDataSource();
}
}

3、设置访问的filter配置:
package com.gwolf.config;
import com.alibaba.druid.pool.DruidDataSource;
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.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class DruidConfig {
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.css,/druid/*");
return filterRegistrationBean;
}
@Bean
public ServletRegistrationBean druidServlet() { //主要实现web监控的配置处理
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
new StatViewServlet(),"/druid/*");
servletRegistrationBean.addInitParameter("allow","127.0.0.1");
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","admin");
servletRegistrationBean.addInitParameter("resetEnable","false");
return servletRegistrationBean;
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource() {
return new DruidDataSource();
}
}

4、为了更好的说明问题,建议建立一个控制器进行业务层的调用。
package com.gwolf.controller;
import com.gwolf.service.IDeptService;
import com.gwolf.service.IMemberService;
import com.gwolf.util.controller.AbstractBaseController;
import com.gwolf.vo.Member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.Iterator;
@RestController
public class DeptController extends AbstractBaseController{
@Autowired
private IDeptService deptService;
@RequestMapping(value="/list", method = RequestMethod.GET)
@ResponseBody
public Object list() {
return this.deptService.getAll();
}
}

5、如果要想进行监控还需要开启一个过滤配置,而这个过滤配置的开启需要通过application.yml文件配置;
server:
port: 8080
spring:
messages:
basename: i18n/Message,i18n/Pages #资源文件的名称
datasource:
#配置当前要使用的数据源的操作类型
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.gjt.mm.mysql.Driver
url: jdbc:mysql://localhost:3306/mldn_1
username: root
password: root
filters: stat,wall,log4j
dbcp2:
min-idle: 5
initial-size: 5
max-total: 5
max-wait-millis: 200
mybatis:
config-location: classpath:mybatis/mybatis.cfg.xml
type-aliases-package: com.gwolf.vo
mapper-locations:
- classpath:mybatis/mapper/**/*.xml

6、利用监控可以方便的进行程序的管理,这一点在企业开发之中只管重要。
