国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springMvc項目如何配置動態(tài)數(shù)據(jù)源

這篇具有很好參考價值的文章主要介紹了springMvc項目如何配置動態(tài)數(shù)據(jù)源。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.在類文件下創(chuàng)建jdbc.properties測試連接

#<!-- =========數(shù)據(jù)源1========== -->
jdbc.driverClass1=com.mysql.cj.jdbc.Driver
jdbc.url1=jdbc\:mysql\://192.168.1.1\:3306/database1?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
jdbc.userName1=root
jdbc.password1=123456
jdbc.initialSize1e1=50
jdbc.maxIdle1=2000
jdbc.minIdle1=50
jdbc.maxActive1=2000

#<!-- =========數(shù)據(jù)源2========== -->
jdbc.driverClass2=com.mysql.cj.jdbc.Driver
jdbc.url2=jdbc\:mysql\://192.168.1.2\:3306/database2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
jdbc.userName2=root
jdbc.password2=123456
jdbc.initialSize1e2=50
jdbc.maxIdle2=2000
jdbc.minIdle2=50
jdbc.maxActive2=2000

2.創(chuàng)建配置bean文件spring-dao.xml

<context:property-placeholder location="classpath:jdbc/jdbc.properties" />
	<!--=======數(shù)據(jù)源1===========================-->
	<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driverClass1}" />
		<property name="url" value="${jdbc.url1}" />
		<property name="username" value="${jdbc.userName1}" />
		<property name="password" value="${jdbc.password1}" />
		<property name="initialSize" value="${jdbc.initialSize1e1}"/>
		<property name="maxActive" value="${jdbc.maxIdle1}" />
		<property name="maxIdle" value="${jdbc.minIdle1}" />
		<property name="minIdle" value="${jdbc.maxActive1}"/>
	</bean>
	<!--=======數(shù)據(jù)源2===========================-->
	<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driverClass2}" />
		<property name="url" value="${jdbc.url2}" />
		<property name="username" value="${jdbc.userName2}" />
		<property name="password" value="${jdbc.password2}" />
		<property name="initialSize" value="${jdbc.initialSize1e2}"/>
		<property name="maxActive" value="${jdbc.maxIdle2}" />
		<property name="maxIdle" value="${jdbc.minIdle2}" />
		<property name="minIdle" value="${jdbc.maxActive2}"/>
	</bean>

<!--=======配置數(shù)據(jù)源動態(tài)切換===========================-->
	<!-- 配置動態(tài)數(shù)據(jù)源 --> 
	<!-- 別忘記創(chuàng)建類 DynamicDataSource --> 
	<bean id="dynamicDataSource" class="cn.test.testmodel.DynamicDataSource">
		<property name="defaultTargetDataSource" ref="dataSource1" />
		<property name="targetDataSources">
			<map>
				<entry key="dataSource1" value-ref="dataSource1" />
				<!--切換-->
				<entry key="dataSource2" value-ref="dataSource2" />
			</map>
		</property>
	</bean>

	<!--  sqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 數(shù)據(jù)庫連接池 -->
		<property name="dataSource" ref="dynamicDataSource" />
		<!-- 加載mybatis的全局配置文件 -->
		<property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
	</bean>

	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 掃描包路徑,如果需要掃描多個包,中間使用半角逗號隔開 -->
		<property name="basePackage" value="cn.test.testMapper"></property>
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>

2.1 常用數(shù)據(jù)源配置

		<property name="maxWait" value="5000" />

		<property name="logAbandoned" value="true" />
		<property name="removeAbandoned" value="true" />
		<property name="removeAbandonedTimeout" value="90" />
	    <property name="maxWait" value="3000" />
		<property name="validationQuery">
			<value>SELECT 1</value>
		</property>
		<property name="testOnBorrow">
			<value>true</value>
		</property>
		
以下是一些常見的配置選項:

1. **maxTotal / maxActive**: 數(shù)據(jù)源允許的最大活動連接數(shù)。
2. **maxIdle**: 數(shù)據(jù)源允許的最大空閑連接數(shù)。
3. **minIdle**: 數(shù)據(jù)源允許的最小空閑連接數(shù)。
4. **initialSize**: 數(shù)據(jù)源在啟動時創(chuàng)建的初始連接數(shù)。
5. **maxWaitMillis**: 在連接池耗盡并且達(dá)到`maxTotal`時,應(yīng)用程序等待可用連接的最大時間(以毫秒為單位)。
6. **timeBetweenEvictionRunsMillis**: 連接池進(jìn)行空閑連接回收的時間間隔(以毫秒為單位)。
7. **minEvictableIdleTimeMillis**: 連接池中的連接在被認(rèn)定為空閑連接并且被移除之前,需要保持空閑的最小時間(以毫秒為單位)。
8. **testWhileIdle**: 是否在連接池空閑連接回收線程運行時,對連接進(jìn)行測試。
9. **testOnReturn**: 是否在連接返回連接池時對連接進(jìn)行測試。
10. **timeBetweenEvictionRunsMillis**: 空閑連接回收線程運行的時間間隔(以毫秒為單位)。
11. **removeAbandoned**: 是否移除超過指定時間未使用且被認(rèn)定為廢棄的連接。
12. **removeAbandonedTimeout**: 超過指定時間未使用且被認(rèn)定為廢棄的連接將被移除的超時時間(以秒為單位)。
13. **logAbandoned**: 是否記錄被移除的廢棄連接日志。
14. **defaultAutoCommit**: 連接的默認(rèn)自動提交行為。
15. **defaultTransactionIsolation**: 連接的默認(rèn)事務(wù)隔離級別。

3.創(chuàng)建類 DynamicDataSource

package cn.test.testmodel;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

import javax.servlet.http.HttpServletRequest;

public class DynamicDataSource extends AbstractRoutingDataSource {

    @Autowired
    private HttpServletRequest request;

    @Override
    protected Object determineCurrentLookupKey() {
        String ipAddress = request.getRequestURL().toString();
        String dataSourceName = switchDataSource(ipAddress);
        return dataSourceName;
    }

    private String switchDataSource(String ipAddress) {    
    //切換邏輯
        if (ipAddress.indexOf("requestIpAddressStr") > -1) {
            return "dataSource1";
        } else {
            return "dataSource2";
        }
    }

}

4.創(chuàng)建web文件將spring-dao.xml文件引入

具體文件引入和結(jié)構(gòu)體參考另一章連接文章來源地址http://www.zghlxwxcb.cn/news/detail-811518.html

	<!-- 加載spring容器 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:/spring/spring-dao.xml</param-value>
	</context-param>

到了這里,關(guān)于springMvc項目如何配置動態(tài)數(shù)據(jù)源的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Springboot 配置動態(tài)多數(shù)據(jù)源(Mybatis-plus)

    Springboot 配置動態(tài)多數(shù)據(jù)源(Mybatis-plus)

    前言:在項目中需要用到動態(tài)切換多數(shù)據(jù)源,查閱Mybatis-plus文檔得知可以通過@DS注解,但該方法主要針對不同內(nèi)容的數(shù)據(jù)源,而目前場景是相同內(nèi)容的數(shù)據(jù)庫需要在運行時根據(jù)請求頭動態(tài)切換,因此文檔方法不適用。 注意,不要使用dynamic-datasource-spring-boot-starter依賴包。 應(yīng)用

    2024年02月12日
    瀏覽(23)
  • grpc + springboot + mybatis-plus 動態(tài)配置數(shù)據(jù)源

    grpc + springboot + mybatis-plus 動態(tài)配置數(shù)據(jù)源

    前言 這是我在這個網(wǎng)站整理的筆記,關(guān)注我,接下來還會持續(xù)更新。 作者:神的孩子都在歌唱 1.1 項目初始化 項目初始化的時候會調(diào)用com.baomidou.dynamic.datasource.DynamicRoutingDataSource對象的addDataSource方法添加數(shù)據(jù)源,數(shù)據(jù)源存進(jìn)dataSourceMap中。 1.2 接口請求時候 進(jìn)行數(shù)據(jù)操作時,

    2024年02月09日
    瀏覽(30)
  • 如何在Spring Boot應(yīng)用中使用Nacos實現(xiàn)動態(tài)更新數(shù)據(jù)源

    如何在Spring Boot應(yīng)用中使用Nacos實現(xiàn)動態(tài)更新數(shù)據(jù)源

    ???? 博主貓頭虎 帶您 Go to New World.??? ?? 博客首頁——貓頭虎的博客?? ??《面試題大全專欄》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍專欄》學(xué)會IDEA常用操作,工作效率翻倍~?? ?? 《100天精通Golang(基礎(chǔ)入門篇)》學(xué)會Golang語言

    2024年02月10日
    瀏覽(23)
  • 如何在Spring Boot中配置雙數(shù)據(jù)源?

    在許多應(yīng)用程序中, 可能會遇到需要連接多個數(shù)據(jù)庫的情況 。這些數(shù)據(jù)庫可以是不同的類型,例如關(guān)系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫,或者它們可以是相同類型但包含不同的數(shù)據(jù)。為了處理這種情況,我們可以使用雙數(shù)據(jù)源來管理多個數(shù)據(jù)庫連接。 雙數(shù)據(jù)源是指在一個應(yīng)用程序中

    2024年02月11日
    瀏覽(20)
  • springboot dynamic-datasource 實現(xiàn)動態(tài)切換數(shù)據(jù)源-多租戶-配置文件切換-基于dynamic-datasource

    1、實現(xiàn)動態(tài)切換數(shù)據(jù)源 2、實現(xiàn)配置多數(shù)據(jù)源 3、實現(xiàn)讀寫分離也可以用多數(shù)據(jù)源方式 4、選擇 dynamic-datasource集成了很多ORM的框架,其中,使用比較多的是druid,但有一些東西開始收費了 druid也可以自行配置,配置多了點 目前版本只支持單一位置加載數(shù)據(jù)源(只能從配置文件或

    2024年02月09日
    瀏覽(17)
  • SpringBoot——動態(tài)數(shù)據(jù)源(多數(shù)據(jù)源自動切換)

    SpringBoot——動態(tài)數(shù)據(jù)源(多數(shù)據(jù)源自動切換)

    日常的業(yè)務(wù)開發(fā)項目中只會配置一套數(shù)據(jù)源,如果需要獲取其他系統(tǒng)的數(shù)據(jù)往往是通過調(diào)用接口, 或者是通過第三方工具比如kettle將數(shù)據(jù)同步到自己的數(shù)據(jù)庫中進(jìn)行訪問。 但是也會有需要在項目中引用多數(shù)據(jù)源的場景。比如如下場景: 自研數(shù)據(jù)遷移系統(tǒng),至少需要新、老兩

    2024年02月16日
    瀏覽(18)
  • yml配置動態(tài)數(shù)據(jù)源(數(shù)據(jù)庫@DS)與引起(If you want an embedded database (H2, HSQL or Derby))類問題

    yml配置動態(tài)數(shù)據(jù)源(數(shù)據(jù)庫@DS)與引起(If you want an embedded database (H2, HSQL or Derby))類問題

    Druid連接池的自動配置類是DruidDataSourceAutoConfigure類上有一行注解 @EnableConfigurationProperties注解的作用是:使配置文件中的配置生效并且映射到指定類的屬性 DruidStatProperties:指定的前綴是spring.datasource.druid,主要設(shè)置連接池的一些參數(shù) DataSourceProperties:指定的前綴是spring.dataso

    2024年02月10日
    瀏覽(25)
  • SpringBoot動態(tài)切換數(shù)據(jù)源

    SpringBoot動態(tài)切換數(shù)據(jù)源

    ? Spring提供一個DataSource實現(xiàn)類用于動態(tài)切換數(shù)據(jù)源—— AbstractRoutingDataSource pom.xml 大概的項目結(jié)構(gòu) 注意:這兩個事務(wù)管理器,并不能處理分布式事務(wù) 鏈接:https://pan.baidu.com/s/1ymxeKYkI-cx7b5nTQX0KWQ? 提取碼:6bii? --來自百度網(wǎng)盤超級會員V4的分享? ? ? ? ? ? ? ??

    2024年02月06日
    瀏覽(19)
  • Springboot 多數(shù)據(jù)源 dynamic-datasource動態(tài)添加移除數(shù)據(jù)源

    Springboot 多數(shù)據(jù)源 dynamic-datasource動態(tài)添加移除數(shù)據(jù)源

    上一篇文章我們講了如何通過多數(shù)據(jù)源組件,在Spring boot Druid 連接池項目中配置多數(shù)據(jù)源,并且通過@DS注解的方式切換數(shù)據(jù)源,《Spring Boot 配置多數(shù)據(jù)源【最簡單的方式】》。但是在多租戶的業(yè)務(wù)場景中,我們通常需要手動的切換數(shù)據(jù)源,那么本文將解答你的額疑惑。 dynam

    2024年02月13日
    瀏覽(20)
  • mybatisplus快速實現(xiàn)動態(tài)數(shù)據(jù)源切換

    1.背景 ? 通常一個系統(tǒng)只需要連接一個數(shù)據(jù)庫就可以了。但是在企業(yè)應(yīng)用的開發(fā)中往往會和其他子系統(tǒng)交互,特別是對于一些數(shù)據(jù)實時性要求比較高的數(shù)據(jù),我們就需要做實時連接查詢,而不是做同步。這個時候就需要用到多數(shù)據(jù)源。 ? 舉個簡單的例子某企業(yè)要做訂單網(wǎng)上訂

    2024年02月06日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包