商务服务
Spring Boot数据源配置及数据库连接池的概念
2024-12-04 02:52


Spring中配置数据源的几种方式

Spring Boot数据源配置及数据库连接池的概念

  • 通过在JDBC驱动程序定义的数据源;
  • 通过JNDI查找的数据源;
  • 连接池的数据源;

 

对于Sping应用来说需要手动配置

Spring boot中帮我们自动配置好了,只需要在application.properties中声明指定jndiName就可以了。

因为Spring boot自带web容器,因此JNDI方式只适用于将war发布到独立的web容器启动的方式。

啥是连接池?

  数据库连接池是web容器(比如Tomcat)提供的一个数据库连接管理的容器,连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。

 为什么要用它?

   数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。  一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。 连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。 

在Spring Boot中怎么用?

配置连接池参数

  • 最小连接数:是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费.
  • 最大连接数:是连接池能申请的最大连接数,如果数据库连接请求超过次数,后面的数据库连接请求将被加入到等待队列中,这会影响以后的数据库操作
  • 最大空闲时间: 超出这个时间,该连接将被销毁
  • 获取连接超时时间: 超出时间程序将会返回连接超时异常
  • 超时重试连接次数: 超时后重新连接的次数

 

Spring Boot2.0默认使用HikariCP连接池管理数据源

 

HikariCP的特点是快,

常用HkariCP配置

更多配置去官网https://github.com/brettwooldridge/HikariCP

这样就搞定了,Spring Boot帮我们把数据源创建、事务管理、JdbcTemplate创建都搞定了。

 

Alibaba Druid 连接池(https://github.com/alibaba/druid)

 

Durid通过Filter来扩展和定制连接池操作的细节

Filter 配置
• spring.datasource.druid.filters=stat,config,wall,log4j (全部使?默认值) 
密码加密
• spring.datasource.password=<加密密码>
• spring.datasource.druid.filter.config.enabled=true
• spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=<public-key>
SQL 防注?
• spring.datasource.druid.filter.wall.enabled=true
• spring.datasource.druid.filter.wall.db-type=h2
• spring.datasource.druid.filter.wall.config.delete-allow=false  // 是否允许执行delete
• spring.datasource.druid.filter.wall.config.drop-table-allow=false // 是否允许执行drop table

实现Filter

 

 

 

在Sring boot中配置多数据源需要写多套配置,例如创建两个数据源

分别用Java Config 为不同的配置创建数据源Bean。

首先让Spring boot取消自动配置

然后手动配置DataSource和TransactionManager,@Primary注解指明当有两个类实现同一接口的时候该采用哪个实现类进行@Autowried,另外可以在实现类上用@Qualifier("className")指定名称,后面@Autowried的时候也用@Qualifier指定注入哪个类。

 

到此我们可以使用DataSource了

 

 

    以上就是本篇文章【Spring Boot数据源配置及数据库连接池的概念】的全部内容了,欢迎阅览 ! 文章地址:http://fabua.ksxb.net/news/3549.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 海之东岸资讯移动站 http://fabua.ksxb.net/mobile/ , 查看更多   
最新文章
港股风向标|行情反复震荡结构特性凸显 场内沽空连续走弱重回低位
财联社4月1日讯(编辑 冯轶)今日港股行情转涨,截至收盘,恒生科技指数涨0.23%,恒生指数、国企指数分别上涨0.38%及0.24%。我们
租手机需要注意哪些事项?创硕租机可以免押金租手机吗?免押金租手机「租手机需要注意哪些事项?创硕租机可以免押金租手机吗?」
手机每年都会经过一次更新换代,像苹果手机的忠实用户,基本每年都会换上最新款式的苹果手机。现在手机租赁市场已经非常完善了,
我的世界神奇宝贝单机版我的世界神奇宝贝手机版下载「我的世界神奇宝贝单机版」
我的世界神奇宝贝单机版是一款基于热门沙盒游戏《我的世界》的模组整合包,它融合了经典的宝可梦元素,为玩家提供了一个高自由度
走进新下线的适老化旅游列车
本报记者 李心萍数据来源:国铁集团制图:张丹峰“大河之南号”的双人包间。“大河之南号”的娱乐室。以上图片均为崔轩豪摄(人民
解锁了手机贴膜的新难度——曲面屏贴全胶uv钢化膜实战手机钢化膜怎么撕下来「解锁了手机贴膜的新难度——曲面屏贴全胶uv钢化膜实战」
上班时间,忽然接到老婆电话,说摔了,膜没事,但屏幕碎了。正好碎了一角,里面显示没问题,应该是外屏玻璃碎了。原先贴的水凝膜
手机投屏电脑:实现移动设备与电脑的无缝连接手机怎么投屏到电脑上「手机投屏电脑:实现移动设备与电脑的无缝连接」
简介:在现代社会中,移动设备和电脑已经成为人们生活中不可或缺的工具。然而,由于两者之间的操作系统和界面差异,使得移动设备
iQOO9和真我GT2Pro买哪个好?iQOO9和真我GT2Pro对比测评手机对比参数配置「iQOO9和真我GT2Pro买哪个好?iQOO9和真我GT2Pro对比测评」
iQOO9和真我GT2Pro这两款手机在价格、受众群体、硬件配置这些方面非常接近,有很多用户都很好奇iQOO9和真我GT2Pro有什么区别,哪
手机钢化膜怎么选 选购钢化膜的注意事项手机钢化膜怎么贴视频教程「手机钢化膜怎么选 选购钢化膜的注意事项」
一、手机钢化膜怎么选 1、材质选择钢化膜的材质是选择的关键。目前市场上主要有三种材质的钢化膜:普通钢化膜、PET膜和TPU膜。普
什么是公开版手机公开版手机是什么意思「什么是公开版手机」
在智能手机日益普及的今天,消费者在购买手机时常常会遇到各种版本的选择,其中“公开版手机”是一个常见的选项。那么,什么是公
新手机激活详解:如何判断及注意事项手机激活是什么意思「新手机激活详解:如何判断及注意事项」
新手机怎么算激活?一文解读随着科技的飞速发展,智能手机已经成为我们日常生活中不可或缺的一部分。每当大家购买新手机后,常常

loading