springboot整合druid

技术springboot整合druid springboot整合druid一.SpringBoot整合Druid
Druid是阿里巴巴的一个开源项目,是一个数据库连接池的实现,结合了C3P0、DBCP、

跳羚整合德鲁伊

一.SpringBoot整合Druid

德鲁伊特是阿里巴巴的一个开源项目,是一个数据库连接池的实现,结合了C3P0、DBCP、普罗索尔等分贝池的优点,整合配置参考地址德鲁伊不但提供连接池的功能,还提供监控功能,可以实时查看数据库连接池和结构化查询语言查询的工作情况(最牛X的地方就在与提供的日志监控功能)。在上一章中(跳脚整合JDBC,初级专业人员)讲述到,Spring Boot底层都是采用春季数据的方式进行统一处理,春季数据中内置连接池数据源卡塔尔数据源。回弹整合德鲁伊特实现数据源更换,则需要手动配置。

1.新建SpringBoot工程,引入依赖

基础依赖:新建回弹工程,建议引入以下基础依赖

弹簧-启动-启动-家长(回弹父工程)——必选

弹簧启动装置启动器)——必选

弹簧引导开发工具热部署)——可选

弹簧靴-起动机-腹板(回弹整合WEB)——必选

MySQL-连接器-java(MySQL驱动)——必选

德鲁伊-弹簧-启动-启动整合德鲁伊)——必选

春季启动启动器jdbc整合JDBC)——必选

弹簧-启动-启动-测试(回弹整合测试Junit)——默认必选

弹簧启动插件打包插件)——必选

lombok(整合龙目岛简化POJO开发)——可选

弹簧启动配置处理器整合配置文件注入POJO)——可选

1 !- MySQL驱动-

2依赖性

3 groupIdmysql/groupId

4 artifactIdmysql-连接器-java/artifactId

5 scoperuntime/scope

6/依赖性

8 !-跳脚整合德鲁伊-

9依赖性

10 groupIdcom.alibaba/groupId

11 artifactIddruid-spring-boot-starter/artifactId

12版本1 .1 .22/版本

13/依赖性

常见问题:整合如果没有引入spring-boot-starter-jdbc,会报错:ClassNotFoundException:组织.jdbc.嵌入式。嵌入式数据库类型。

问题原因:Spring Boot底层都是采用春季数据的方式进行统一处理嵌入式数据库类型类在春季启动启动器jdbc依赖中。

依赖说明:回弹属于春天"全家桶"组件,德鲁伊属于阿里巴巴旗下开发产品,所以回弹整合德鲁伊特并不是由春天组件提供依赖,而是由阿里巴巴提供。

2.修改yml配置文件,整合配置Druid

弹簧:

数据源:

# 数据库访问配置,使用德鲁伊数据源(默认数据源是HikariDataSource)

:型。com。阿里巴巴。德鲁伊。游泳池。德鲁伊数据源

#链接池配置

德鲁伊:

驱动程序类名: com。MySQL。CJ。JDBC。驾驶员

网址: JDBC :我的SQL ://本地主机:3306/回弹ootuuseunicode=真字符编码=UTF-8 usessl=假服务器时区=GMT 8

用户名:根

password: xsge

# 连接池配置:大小,最小,最大

初始尺寸: 5

最小怠速: 5

max-active: 20

# 连接等待超时时间

最大等待时间: 30000

# 配置检测可以关

闭的空闲连接,间隔时间
time-between-eviction-runs-millis: 60000

# 配置连接在池中的最小生存时间
min-evictable-idle-time-millis: 300000
# 检测连接是否有,有效得select语句
validation-query: select '1' from dual
# 申请连接的时候检测,如果空闲时间大于time-between-eviction-runs-millis,执行validationQuery检测连接是否有效,建议配置为true,不影响性能,并且保证安全性。
test-while-idle: true
# 申请连接时执行validationQuery检测连接是否有效,建议设置为false,不然会会降低性能
test-on-borrow: false
# 归还连接时执行validationQuery检测连接是否有效,建议设置为false,不然会会降低性能
test-on-return: false

# 是否缓存preparedStatement,也就是PSCache 官方建议MySQL下建议关闭 个人建议如果想用SQL防火墙 建议打开
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: true
max-open-prepared-statements: 20
max-pool-prepared-statement-per-connection-size: 20

# 配置监控统计拦截的filters, 去掉后监控界面sql无法统计, 'wall'用于防火墙防御sql注入,stat监控统计,logback日志
filters: stat,wall
# Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
#aop-patterns: com.springboot.servie.*
# lowSqlMillis用来配置SQL慢的标准,执行时间超过slowSqlMillis的就是慢
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

# WebStatFilter监控配置
web-stat-filter:
# 添加过滤规则:那些访问拦截统计
# 忽略过滤的格式:哪些不拦截,不统计
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'

# StatViewServlet配置(Druid监控后台的Servlet映射配置,因为SpringBoot项目没有web.xml所在在这里使用配置文件设置)
stat-view-servlet:
enabled: true
# 配置Servlet的访问路径:访问路径为/druid/**时,跳转到StatViewServlet,会自动转到Druid监控后台
url-pattern: /druid/*
# 是否能够重置数据
reset-enable: false
# 设置监控后台的访问账户及密码
login-username: xsge
login-password: xsge
# IP白名单:允许哪些主机访问,默认为“”任何主机
# allow: 127.0.0.1
# IP黑名单:禁止IP访问,(共同存在时,deny优先于allow)
# deny: 192.168.1.218

# 配置StatFilter
filter:
stat:
log-slow-sql: true

上述配置不但配置了Druid作为连接池,而且还开启了Druid的监控功能。




druid强大的地方在于它可以自定义配置

config包——————新建一个类DruidConfig——————DataSource druidDataSource(){return new DruidDataSource();}——————@Bean 注入到spring容器中——————@
ConfigurationProperties(prefix = "spring.datasource")

//后台监控 : 相当于web.xml
ServletRegistrationBean
//springboot内置了servlet容器,所有没有web.xml 替代方法:将ServletRegistrationBean注册进去
public ServletRegistrationBean StatViewServlet(){
    ServletRegistrationBeanStatViewServlet bean = new ServletRegistrationBeanStatViewServlet(new StatViewServlet(), "/druid/**");
//后台有人要登录,账号密码配置
HashMapString, String initParameters = new HashMap();
initParameters.put("loginUsername","admin");
initParameters.put("loginPassword","123456"); //登录的key是固定的 必须是loginUsername loginPassword
//允许谁能访问
initParameters.put("allow","");
//也可以禁止谁能访问
initParameters.put("dragon","ip地址");


bean.setInitParameters(initParameters);//设置初始化参数
return bean;
}

//过滤器
@Bean
public FilterRegistrationBean webStaFilter(){
FilterRegistrationBean bean = new FilterRegistrationBean();

bean.setFilter(new WebStatFilter());


HashMapString, String initParameters = new HashMap();
initParameters.put("exclusions","*.js,*.css");

bean.setInitParameters(initParameters);
return bean;
}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/84607.html

(0)

相关推荐

  • 寒冬腊月意思,寒冬腊月、北国风光、造句

    技术寒冬腊月意思,寒冬腊月、北国风光、造句【意思】指农历十二月天气最冷的时候。泛指寒冷的冬季。【读音】hán dōng là yuè 【出处】汉·无名氏《别诗(骨肉缘枝叶)》:“征夫怀远路,游子恋故乡。寒冬十二月,晨起

    生活 2021年10月24日
  • offset的值怎么显示一个区域(top数据怎么设置)

    技术TopKey怎么设置分隔符本篇内容介绍了“TopKey怎么设置分隔符”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!k

    攻略 2021年12月23日
  • PHP中怎样获取目录中的文件名

    技术PHP中怎样获取目录中的文件名PHP中怎样获取目录中的文件名,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们来看一下PHP中怎样去获取目录下的文件相关

    攻略 2021年11月2日
  • 硫酸除铁锈的化学方程式,出铁形成铁锈的化学方程式

    技术硫酸除铁锈的化学方程式,出铁形成铁锈的化学方程式2Fe+O2+2H2O=2Fe(OH)2然后再氧化:
    4Fe(OH)2+O2+2H2O=4Fe(OH)3
    但我们所见到的铁锈其实是Fe2O3的水合物硫酸除铁锈的化学方程

    生活 2021年10月28日
  • 怎么用snow人脸识别贴图(mask遮罩人脸识别教程)

    技术如何使用MaskTheFace实现给人脸图片戴口罩小编给大家分享一下如何使用MaskTheFace实现给人脸图片戴口罩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下

    攻略 2021年12月19日
  • k8s百度百科(k8的特征)

    技术k8s的本质是什么这篇文章给大家介绍k8s的本质是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当下 k8s 算是比较火的一个内容,那么它到底是什么呢,它为什么会这么火呢,它解决的是什么问题

    攻略 2021年12月15日