使用spring boot搭建druid

1.在pom.xml中添加spring boot、mysql、drui 相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>


	<groupId>com.he</groupId>
	<artifactId>springboot</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>


	<name>springboot</name>
	<description>Demo project for Spring Boot</description>


	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>


	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>


	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>


		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		
		<dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-data-jpa</artifactId>  
        </dependency>  
		
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.38</version>
			<scope>runtime</scope>
		</dependency>
		
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.28</version>
		</dependency>
		 
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>


		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
	</dependencies>


	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>




</project>
2.在application.properties文件中配置数据源相关信息

# 数据库访问配置
# 主数据源,默认
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver

# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最大,最小
spring.datasource.initialSize=5
spring.datasource.maxActive=20
spring.datasource.minIdle=5

# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置检测间隔,检测需要关闭的空闲连接,单位毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在连接池中最小生存时间,单位毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,指定每个连接上PSCache大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
# 通过connectionProperties属性来打开mergeSql功能,慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
#spring.datasource.useGlobalDataSourceStat=true
3.配置监控统计功能spring boot项目基于注解配置

3.1 配置servlet  spring boot项目基于注解配置

import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;


import com.alibaba.druid.support.http.StatViewServlet;


/**
 * Druid的StatViewServlet
 * @author Administrator
 *
 */
@SuppressWarnings("serial")
@WebServlet(
		urlPatterns="/druid/*",
		initParams={
				@WebInitParam(name="allow", value="192.168.1.72,127.0.0.1"), // IP白名单(没有配置或者为空,则允许所有访问)
				@WebInitParam(name="deny", value="192.168.1.73"), // IP黑名单(存在共同时,deny优先于allow)
				@WebInitParam(name="loginUsername", value="admin"), // 用户名
				@WebInitParam(name="loginPassword", value="123456"), // 密码
				@WebInitParam(name="resetEnable", value="false") // 禁用HTML页面上的"Reset All"功能
		})
public class DruidStatViewServlet extends StatViewServlet {


}
3.2 配置filter

import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;


import com.alibaba.druid.support.http.WebStatFilter;


/**
 * Druid的StatFilter
 * @author Administrator
 *
 */
@WebFilter(
		filterName="druidWebStatFilter",
		urlPatterns="/*",
		initParams={
				@WebInitParam(name="exclusions", value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*") // 忽略资源
		})
public class DruidStatFilter extends WebStatFilter {


}
4.在SpringbootApplication.java文件中添加以下代码

import javax.sql.DataSource;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;

import com.alibaba.druid.pool.DruidDataSource;

@ServletComponentScan
@SpringBootApplication
public class SpringbootApplication {
	@Bean 
    	@ConfigurationProperties(prefix="spring.datasource")
	public DataSource druidDataSource() {
        	return new DruidDataSource();
    	}
	public static void main(String[] args) {
		SpringApplication.run(SpringbootApplication.class, args);
	}
}

然后启动项目访问http://127.0.0.1:8080/druid/index.html即可查看数据源与sql监控相关信息


5.更多使用和常见问题

详见:https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98


官方资料直达地址:

Druid 首页 
https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5

Druid 常见问题 
https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

Druid 发布版 
https://github.com/alibaba/druid/releases

Druid 源码 
https://github.com/alibaba/druid


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值