连接数据库
springboot默认数据库hikari,数据库的配置如下:
-
spring:
-
datasource:
-
driver-
class-name: com.mysql.cj.jdbc.Driver
-
url:
jdbc:
mysql:/
/localhost:3306/mybatis?useSSL=
true&useUnicode=
true&characterEncoding=UTF-
8&serverTimezone=UTC
-
username: wanide
-
password:
"000000"
druid
Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。
使用druid需要先导入依赖:
-
<dependency>
-
<groupId>com.alibaba
</groupId>
-
<artifactId>druid
</artifactId>
-
<version>1.1.21
</version>
-
</dependency>
application.yaml配置数据库:
-
spring:
-
datasource:
-
driver-
class-name: com.mysql.cj.jdbc.Driver
-
url:
jdbc:
mysql://
localhost:3306/
mybatis?
useSSL=
true&useUnicode=
true&characterEncoding=UTF-
8&serverTimezone=UTC
-
username: wanide
-
password:
"000000"
-
type: com.alibaba.druid.pool.DruidDataSource
-
-
#Spring Boot 默认是不注入这些属性值的,需要自己绑定
-
#druid 数据源专有配置
-
initialSize:
5 #初始化时建立物理连接的个数
-
minIdle:
5 #最小连接池数量
-
maxActive:
20 #最大连接池数量
-
maxWait:
60000 #获取连接时最大等待时间
-
timeBetweenEvictionRunsMillis:
60000 #Destory线程检测连接的间隔时间
-
minEvictableIdleTimeMillis:
300000 #连接保持空闲而不被驱逐的最长时间
-
validationQuery: SELECT
1 FROM DUAL #检测连接是否有效的sql
-
testWhileIdle:
true
-
testOnBorrow:
false #申请连接时执行validationQuery检测连接是否有效
-
testOnReturn:
false #归还连接时执行validationQuery检测连接是否有效
-
poolPreparedStatements:
true #是否缓存preparedStatements
-
-
#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
-
#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority
-
#则导入 log4j 依赖即可
-
filters: stat,wall,log4j
-
maxPoolPreparedStatementPerConnectionSize:
20
-
useGlobalDataSourceStat:
true
-
connectionProperties: druid.stat.mergeSql=
true;druid.stat.slowSqlMillis=
500
Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看。
-
package com.lyr.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;
-
import java.util.HashMap;
-
import java.util.Map;
-
-
@Configuration
-
public
class DruidConfig {
-
@ConfigurationProperties(prefix =
"spring.datasource")
-
@Bean
-
public DataSource druidDataSource(){
-
return
new DruidDataSource();
-
}
-
-
//后台监控:因为springboot内置了servlet容器,使用没有web.xml,可以用ServletRegistrationBean替代
-
@Bean
-
public ServletRegistrationBean statViewServlet(){
-
ServletRegistrationBean<StatViewServlet> bean =
new ServletRegistrationBean<>(
new StatViewServlet(),
"/druid/*");
-
-
//后台需要有人登陆,账号密码
-
HashMap<String,String> initParameters =
new HashMap<>();
-
-
//增加配置
-
initParameters.put(
"loginUsername",
"admin");
//登陆参数是固定的
-
initParameters.put(
"loginPassword",
"123456");
-
-
//允许谁可以访问
-
initParameters.put(
"allow",
"");
-
-
-
bean.setInitParameters(initParameters);
//设置初始化参数
-
return bean;
-
}
-
-
}
配置完后访问http://localhost:8080/druid/login.html就可以进入后台
用户名和密码就是刚刚我们配置的,就可以查看我们对数据库的操作什么的。
配置过滤器
-
//filter
-
@Bean
-
public FilterRegistrationBean webStatFilter(){
-
FilterRegistrationBean bean =
new FilterRegistrationBean();
-
bean.setFilter(
new WebStatFilter());
-
//过滤那些请求
-
Map<String,String> initParameters =
new HashMap<>();
-
//不过滤的
-
initParameters.put(
"exclusions",
"*.js,*.css,/druid/*");
-
bean.setInitParameters(initParameters);
-
return bean;
-
}
转载:https://blog.csdn.net/wan_ide/article/details/105137376
查看评论