前言
近来项目基本都是基于 SpringBoot 的,同理,使用 Druid 作为数据源,也是很简单的操作、原理
代码
做了一个简单 CRUD 来测试 sql,但是都不是重点,这里重点在于数据源的配置
1.DruidConfig.java
package com.cun.config;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
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 com.alibaba.druid.pool.DruidDataSource; //这个包容易导入错误
import com.alibaba.druid.support.http.StatViewServlet; //这个包容易导入错误
import com.alibaba.druid.support.http.WebStatFilter; //这个包容易导入错误
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druid() {
return new DruidDataSource();
}
// 配置Druid的监控
// 1、配置一个管理后台的Servlet
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
Map
initParams = new HashMap<>();
// 监控页面登录用户名
initParams.put("loginUsername", "admin");
// 监控页面登录用户密码
initParams.put("loginPassword", "123456");
// ip白名单(没有配置或者为空,则允许所有访问)
initParams.put("allow", "");
// ip黑名单(如果某个ip同时存在,deny优先于allow)
initParams.put("deny", "");
bean.setInitParameters(initParams);
return bean;
}
// 2、配置一个web监控的filter
@Bean
public FilterRegistrationBean webStatFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
Map
initParams = new HashMap<>(); // 不拦截的静态资源 initParams.put("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"); bean.setInitParameters(initParams); // 拦截所有的请求 bean.setUrlPatterns(Arrays.asList("/*")); return bean; } }
2.SpringBoot 项目基本配置 application.yml
server:
port: 80 #为了以后访问项目不用写端口号
context-path: / #为了以后访问项目不用写项目名
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
password: 123
type: com.alibaba.druid.pool.DruidDataSource #改变默认数据源 c3p0 为 Druid
jpa:
hibernate:
ddl-auto: update #数据库同步代码
show-sql: true #dao操作时,显示sql语句
4.Druid 基本配置 application.properties
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
# 校验SQL,Oracle配置 spring.datasource.validationQuery=SELECT 1 FROM DUAL,如果不配validationQuery项,则下面三项配置无用
spring.datasource.validationQuery=SELECT 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.dat