写点什么

史上最全 SpringBoot 教程,从零开始带你深入♂学习(九,大厂 Java 面试真题精选

用户头像
极客good
关注
发布于: 刚刚

spring:


datasource:


username: root


password: 123456


url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8


driver-class-name: com.mysql.cj.jdbc.Driver


type:


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


com.alibaba.druid.pool.DruidDataSource #切换到 Druid 数据源


[](


)3、数据源切换之后,在测试类中注入 DataSource,然后获取到它,输出一看便知是否成功切换;


@SpringBootTest


class Springboot04DataApplicationTests {


//注入数据源


@Autowired


DataSource dataSource;


@Test//加群 1025684353 一起吹水聊天


void contextLoads() throws SQLException {


//查看数据源


System.out.println(dataSource.getClass());


//获得数据库连接


Connection connection = dataSource.getConnection();


System.out.println(connection);


//关闭数据源连接


connection.close();


}


}



[](


)4、切换成功!既然切换成功,就可以设置数据源连接初始化大小、最大连接数、等待时间、最小连接数 等设置项;4、切换成功!既然切换成功,就可以设置数据源连接初始化大小、最大连接数、等待时间、最小连接数 等设置项;


[白嫖资料](


)


spring:


datasource:


username: root


password: 123456


#?serverTimezone=UTC 解决时区的报错


url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8


driver-class-name: com.mysql.cj.jdbc.Driver


type: com.alibaba.druid.pool.DruidDataSource


#Spring Boot 默认是不注入这些属性值的,需要自己绑定


#druid 数据源专有配置


initialSize: 5


minIdle: 5


maxActive: 20


maxWait: 60000


timeBetweenEvictionRunsMillis: 60000


minEvictableIdleTimeMillis: 300000


validationQuery: SELECT 1 FROM DUAL


testWhileIdle: true


testOnBorrow: false


testOnReturn: false


poolPreparedStatements: true


#配置监控统计拦截的 filters,stat:监控统计、log4j:日志记录、wall:防御 sql 注入


#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority


#则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j


filters: stat,wall,log4j


maxPoolPreparedStatementPerConnectionSize: 20


useGlobalDataSourceStat: true


connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500


[](


)5、导入 Log4j 的依赖


<dependency>


<groupId>log4j</groupId>


<artifactId>log4j</artifactId>


<version>1.2.17</version>


</dependency>


[](


)6、现在需要自己为 DruidDataSource 绑定全局配置文件中的参数,再添加到容器中,而不再使用 Spring Boot 的自动生成了;我们需要自己添加 DruidDataSource 组件到容器中,并绑定属性;


package com.study.config;


import com.alibaba.druid.pool.DruidDataSource;


import org.springframework.boot.context.properties.ConfigurationProperties;


import org.springframework.context.annotation.Bean;


import org.springframework.context.annotation.Configuration;


import javax.sql.DataSource;


@Configuration


public class DruidConfig {


/*


将自定义的 Druid 数据源添加到容器中,不再让 Spring Boot 自动创建


绑定全局配置文件中的 druid 数据源属性到 com.alibaba.druid.pool.DruidDataSource 从而让它们生效


@ConfigurationProperties(prefix = "spring.datasource"):作用就是将 全局配置文件中


前缀为 spring.datasource 的属性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名参数中


*/


@ConfigurationProperties(prefix = "spring.datasource")


@Bean


public DataSource druidDataSource() {


return new DruidDataSource();//加群 1025684353 一起吹水聊天


}


}


[](


)7、去测试类中测试一下;看是否成功!


@SpringBootTest


class Springboot04DataApplicationTests {


//注入数据源


@Autowired


DataSource dataSource;


@Test


void contextLoads() throws SQLException {


//查看数据源


System.out.println(dataSource.getClass());


//获得数据库连接


Connection connection = dataSource.getConnection();


System.out.println(connection);


DruidDataSource druidDataSource = (DruidDataSource) dataSource;//加群 1025684353 一起吹水聊天


System.out.println("druidDataSource 数据源最大连接数:" + druidDataSource.getMaxActive());


System.out.println("druidDataSource 数据源初始化连接数:" + druidDataSource.getInitialSize());


//关闭数据源连接


connection.close();


}


}


输出结果 :可见配置参数已经生效!



[白嫖资料](


)


[](


)配置 Druid 数据源监控


===========================================================================


Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装 路由器 时,人家也提供了一个默认的 web 页面。


所以第一步需要设置 Druid 的后台管理页面,比如 登录账号、密码 等;配置后台管理;


package com.study.config;


import com.alibaba.druid.pool.DruidDataSource;


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


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 javax.sql.DataSource;


import java.util.HashMap;

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
史上最全SpringBoot教程,从零开始带你深入♂学习(九,大厂Java面试真题精选