-
Notifications
You must be signed in to change notification settings - Fork 130
SpringBoot2.0 通过自定义配置类整合 Druid(mybatis版)
zhuoqianmingyue edited this page Jun 11, 2019
·
3 revisions
在阅读前这篇博客之前请先前往 玩转springboot2.x整合mybatis因为该教程是在玩转springboot2.x整合mybatis基础之上进行讲解的。
SpringBoot2.0 通过自定义配置类整合 Druid(mybatis版)教程 在master分支上查看 master mybaties
Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.0</version>
</dependency>
Druid 配置类 需要配置三块信息
- 配置 DruidDataSource (必选) 数据库连接池的信息
- 配置StatFilter (非必选) StatFilter 用于统计监控信息配置
- 配置StatViewServlet(非必选) StatViewServlet用于展示Druid的统计信息。 这个StatViewServlet的用途包括: 提供监控信息展示的html页面 提供监控信息的JSON API
具体配置类内容如下:
package cn.lijunkui.config;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.filter.Filter;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.google.common.collect.Lists;
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix="spring.druid")
@Bean(initMethod="init",destroyMethod="close")
public DruidDataSource dataSource() throws SQLException{
DruidDataSource dataSource = new DruidDataSource();
dataSource.setProxyFilters(Lists.newArrayList(statFilter()));
return dataSource;
}
@Bean
public Filter statFilter(){
StatFilter filter = new StatFilter();
filter.setSlowSqlMillis(5000);
filter.setLogSlowSql(true);
filter.setMergeSql(true);
return filter;
}
@Bean
public ServletRegistrationBean servletRegistrationBean() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),
"/druid/*");
Map initParameters = new HashMap<>();
initParameters.put("loginUsername", "admin");//监控访问登录名称
initParameters.put("loginPassword", "admin");//监控访问的密码
servletRegistrationBean.setInitParameters(initParameters);
return servletRegistrationBean;
}
}
通过访问 http:// ip:项目端口号/项目名称/druid/index.html 访问监控信息,如下图所示: