电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

SpringBoot整合Tomcat連接池的使用

瀏覽:92日期:2023-03-13 14:52:31
連接池大小及性能選項 maxActive:最主要參數,配置連接池同時能維持的最大連接數,如果客戶端理論上需要100個連接,則這個值設為100。 maxIdle:如果客戶端一段時間內不需要使用連接,如果一直把所有連接池中的所有連接都維持在活動狀態是很浪費資源的,maxIdle這個選項告訴tomcat,如果客戶端沒有需求,那么最多維持maxIdle個空閑連接。 minIdle:和maxIdle類似,maxIdle告訴tomcat最多維持多少個空閑連接,minIdle告訴tomcat即使客戶端沒有需求,也要至少維持多少個空閑連接,以應對客戶端的突發需求。 initialSize:連接池啟動時要初始化多少個連接,即使客戶端這是沒有需求,也會初始化空閑連接。 maxWait:連接池出借連接的最長期限,單位是毫秒,比如設為10000ms,客戶端從連接池獲取(借出)一個連接后,10000毫秒沒有歸還(return),則連接池會拋出異常。 maxAge:連接池中一個連接的壽命,連接池初始化一個連接后,會記下初始化的時間,以后每次出借,或有客戶端歸還這個連接時,連接池會檢查 當前時間 - 初始化時間 > maxAge,如果超過maxAge,連接池會刪除這個連接。連接檢查選項

mysql5以后,如果連接長時間不活動 (34,247,052 ms≈ 9.5 小時),mysql數據庫會斷開連接,這會導致異常:MySQLNonTransientConnectionException: No operations allowed after connection closed,以下選項將會告訴連接池,主動檢查連接可用性,避免這個異常發生。

validationQuery:檢查連接可用性的語句,一般來說mysql設置成SELECT 1, oracle設置成select 1 from dual, sql server設置成SELECT 1 ,在檢查連接可用性時,連接池會執行這些語句,如果返回結果不為空,則說明連接可用。validationQueryTimeout:執行連接檢查語句時的超時時間。

上面兩個選項告訴連接池如何檢查連接有效性,下面幾個選項告訴連接池在何時檢查連接有效性

testOnConnect: 在連接初始化時執行連接可用性檢查 testOnBorrow:在借出連接時檢查連接可用性 testOnReturn:在客戶端歸還連接時檢查連接可用性 testWhileIdle:在檢查閑置連接時同時檢查連接可用性背景:

因為項目需求,不能在程序中使用數據庫明文密碼所以采用數據庫連接池的方式訪問數據庫,數據庫信息配置到Tomcat里

環境

JDK1.8apache-tomcat-7.0.76Springboot 2.1.5.RELEASE(環境是版本比較老,需求所致)

1 Tomcat連接池配置

先把mysql-connector-java-8.0.16.jar 導入Tomcat 的lib里

1.1 content.xml配置

Context標簽下添加:

<Resource auth='Container' driverClassName='com.mysql.jdbc.Driver' maxActive='100' maxIdle='10' maxWait='10000' name='jdbc/ZMKTDS' password='XXX' type='javax.sql.DataSource' url='XXX' username='XXX' />

url、username 、password 自己不全即可

1.2 web.xml配置

web-app標簽下添加

<resource-ref> <description>mysqlpool</description> <res-ref-name>jdbc/ZMKTDS</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope></resource-ref>

上述配置只需改用戶名密碼

1.3 測試連接池配置是否成功

在tomcat/webapp/example下放一個test.jsp,

然后啟動Tomcat,訪問localhost:8080/example/test.jsp

<%@ taglib uri='http://java.sun.com/jsp/jstl/sql' prefix='sql' %><%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %><sql:query var='rs' dataSource='jdbc/ZMKTDS'> select id,你的字段 from 你的表</sql:query><html> <head> <title>DB Test</title> </head> <body> <h2>Results</h2><c:forEach var='row' items='${rs.rows}'> Foo ${row.id}<br/> Bar ${row.你的字段名}<br/></c:forEach> </body></html>2 SpringBoot整合JNDI

因為我們用SpringBoot框架,就不用自己寫工具連Tomcat連接池了

2.1 整合JNDI

application.yml datasource: jndi-name: jdbc/datahub db: 你的數據庫

2.2 創建DataSourceConfig

package cn.pconline.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.jndi.JndiLocatorSupport;import org.springframework.jndi.JndiObjectFactoryBean;import javax.naming.NamingException;import javax.sql.DataSource;@Configuration@EnableConfigurationPropertiespublic class DataSourceConfig { @Value('${spring.datasource.jndi-name}') private String jndiName; @Bean('dataSource') @Primary public DataSource primaryDataSource() throws NamingException {JndiObjectFactoryBean bean = new JndiObjectFactoryBean();bean.setJndiName(JndiLocatorSupport.CONTAINER_PREFIX + jndiName);bean.setProxyInterface(DataSource.class);bean.setLookupOnStartup(false);bean.afterPropertiesSet();return (DataSource) bean.getObject(); }}

這樣Spring項目就可以通過Tomcat連接池訪問了

到此這篇關于SpringBoot整合Tomcat連接池的使用的文章就介紹到這了,更多相關SpringBoot Tomcat連接池內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 纸箱抗压机,拉力机,脂肪测定仪,定氮仪-山东德瑞克仪器有限公司 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 中矗模型-深圳中矗模型设计有限公司 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 5L旋转蒸发器-20L-50L旋转蒸发器-上海越众仪器设备有限公司 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 东莞工作服_东莞工作服定制_工衣订做_东莞厂服 | 120kv/2mA直流高压发生器-60kv/2mA-30kva/50kv工频耐压试验装置-旭明电工 | 电竞学校_电子竞技培训学校学院-梦竞未来电竞学校官网 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 湖南教师资格网-湖南教师资格证考试网 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 政府回应:200块在义乌小巷能买到爱情吗?——揭秘打工族省钱约会的生存智慧 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 分类168信息网 - 分类信息网 免费发布与查询 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | pH污水传感器电极,溶解氧电极传感器-上海科蓝仪表科技有限公司 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 江西高职单独招生-江西单招考试-江西高职单招网 | 陕西安玻璃自动感应门-自动重叠门-磁悬浮平开门厂家【捷申达门业】 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 硅胶布|电磁炉垫片|特氟龙胶带-江苏浩天复合材料有限公司 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | AGV无人叉车_激光叉车AGV_仓储AGV小车_AGV无人搬运车-南昌IKV机器人有限公司[官网] | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 广西教师资格网-广西教师资格证考试网 | 砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂 | 搪瓷搅拌器,搪玻璃搅拌器,搪玻璃冷凝器_厂家-淄博越宏化工设备 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 |