Java 幼兒園(20240709)多來源列表映射多實現類

1、功能場景

? ? ? ? 對接多個外部廠商,比如多個銀行的賬單獲取,需要根據銀行信息執行對應的實現類。

2、功能代碼

(1)YAML配置來源列表

bank-source:  bank_001, bank_002, bank_003

(2)外部來源枚舉

public interface BankPlatformEnum {/*** 銀行平臺類型*/enum BankPlatformType implements BankPlatformEnum {BANK_001("bank_001", "001銀行平臺", "bank001Service"),BANK_002("bank_002", "002銀行平臺", "bank002Service"),BANK_003("bank_003", "003銀行平臺", "bank003Service");/*** 銀行平臺編碼*/String code;/*** 銀行平臺名稱*/String name;/*** 銀行平臺的實現類名稱*/String serviceName;BankPlatformType(String code, String name, String serviceName) {this.code = code;this.name = name;this.serviceName = serviceName;}public String getCode() {return code;}public String getName() {return name;}public String getServiceName() {return serviceName;}public static BankPlatformType getByCode(String code){for (BankPlatformType value : values()) {if (value.getCode().equals(code)) {return value;}}return null;}}}

(3)統一銀行業務接口

public interface IBankService {EcsServiceMsg getBillList(BankQO bankQO);}

(4)統一銀行業務代理實現類

@Service
@Slf4j
public class BankServiceProxy implements IBankService {@Value("${bank-source: defaultBankSource}")private List<String> bankSourceList;/*** 歸集第三方發票(可以配置多個第三方廠商,依次遍歷歸集動作)*/@Overridepublic Object getBillList(BankQO bankQO) {for(String sourceCode:bankSourceList){// 根據名稱獲得實例類型try {String serviceName = EcsSyncCollectEnum.BillSourceType.getBySourceCode(sourceCode).getServiceName();AbstractBankService bankService = SpringUtil.getBean(serviceName);bankService.getBillList(bankQO);}catch(Exception e){log.error("發生異常: {}",  sourceCode, e);}}return "銀行業務執行中,請于5-10分鐘后確認執行結果";}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43671.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43671.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43671.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《夢醒蝶飛:釋放Excel函數與公式的力量》10.2 COMPLEX函數

第二節 10.2 COMPLEX函數 10.2.1函數簡介 COMPLEX函數是Excel中的一個工程函數&#xff0c;用于將實部和虛部組合成一個復數。復數廣泛應用于工程、電氣、物理等領域&#xff0c;COMPLEX函數提供了方便的復數表示和計算方法。 10.2.2語法&#xff1a; COMPLEX(real_num, i_…

flex 填滿剩余空間

常見的flex屬性值&#xff1a; 1.flex:1,也就是flex-grow:1,也就是上面說的自動放大填充滿剩余空間&#xff0c;若有其他子盒子設置flex&#xff0c;則平分。 2.flex:0 0 auto,等同于flex:none,子元素的長度決定它的長度&#xff0c;當整體空間不足時&#xff0c;它也不會縮小&…

swift獲取app網絡和本地網絡權限

請求藍牙權限&#xff1a; //藍牙if #available(iOS 13.1, *) {let autostate CBManager.authorizationif(autostate .notDetermined){print("")self.manager CBCentralManager(delegate: nil, queue: DispatchQueue.main,options: [CBCentralManagerOptionShowPo…

JavaScript中的LHS和RHS

LHS和RHS之前我們先來回憶一下最簡單的賦值操作! var test100; console.log(test); 以上代碼的意思簡單我們理解為把右邊的值賦值給左邊的test變量,然后輸出打印結果。 可是我們要是深入理解你就會發現在這個過程當中&#xff0c;還發生了一些其他的事情 而這些事情就是今天…

C語言 printf函數緩沖機制

printf不立即打印到stdout的原因 printf函數使用了緩沖機制。當我們調用printf時,輸出通常不會立即顯示在屏幕上,而是先存儲在一個緩沖區中。這是為了提高I/O操作的效率。 緩存數據輸出的原理 stdio庫維護了一個緩沖區。當緩沖區滿了,或者在特定條件下,緩沖區的內容會被刷新…

前端如何讓網頁頁面完美適配不同大小和分辨率屏幕

推薦使用postcss插件&#xff0c;它會自動將項目所有的px單位統一轉換為vw等單位&#xff08;包括npm安裝的第三方組件&#xff09;&#xff0c;從而實現適配&#xff0c;具體配置規則可參考官網或npm網站介紹。 另外對于大屏的適配&#xff0c;需要縮放網頁&#xff0c;可使用…

歐姆龍安全PLC及周邊產品要點指南

電氣安全、自動化設備作業安全&#xff0c;向來是非常非常之重要的&#xff01;越來越多的客戶在規劃新產線、改造既有產線的過程中&#xff0c;明確要求設計方和施工方將安全考慮進整體方案中進行考慮和報價&#xff01;作為一名自動化電氣工程師&#xff0c;尤其是高級工程師…

養寵經驗分享貓咪經常掉毛怎么辦?最值得買的寵物空氣凈化器分享

身為資深鏟屎官&#xff0c;深知若偷懶不打掃&#xff0c;家中便成貓毛紛飛、異味繚繞的戰場&#xff0c;尤其換季時&#xff0c;更是雪上加霜。長期處于這樣的環境&#xff0c;不僅我們頭疼眼澀、咳嗽氣喘&#xff0c;對老人、小孩、孕婦等敏感群體更是健康大敵。 幸運的是&a…

Vagrant配合VirtualBox搭建虛擬機

目錄 前言一、軟件下載及安裝1.下載2.安裝擴展&#xff1a; 二、創建一個虛擬機1.Vagrant官方鏡像倉庫 三、使用遠程工具連接虛擬機1.修改相關配置文件 四、虛擬機克隆及使用1.通用配置2.簡單搭建一個java環境3.克隆虛擬機1.重命名虛擬機&#xff08;可選&#xff09;2.打包指定…

靶場練習 手把手教你通關DC系列 DC1

DC1靶場通關教程 文章目錄 DC1靶場通關教程前言一、信息收集1.主機存活2.端口收集3.網頁信息收集4.目錄收集4.1 Nikto4.2 Dirb 信息收集總結 二、漏洞發現與利用1. 發現2. 利用 三、FlagFlag1Flag2Flag3Flag4Flag5(提權) 前言 本次使用的kali機的IP地址為192.168.243.131 DC1的…

機器學習 - 比較檢驗

列聯表 列聯表&#xff08;Contingency Table&#xff09;是一種用于顯示兩個或多個分類變量之間關系的表格。它廣泛應用于統計學中的分類數據分析&#xff0c;尤其在獨立性檢驗和關聯性分析時。列聯表的每個單元格展示了相應分類變量組合的頻數&#xff08;或比例&#xff09…

【2024_CUMCM】LINGO入門+動態規劃

目錄 什么是動態規劃 怎么使用動態規劃&#xff1f; 例題&#xff1a;最短路線問題 2020b-問題一 穩定性分析 靈敏度分析 什么是動態規劃 基本想法&#xff1a;將原問題轉換為一系列相互聯系的子問題&#xff0c;然后通過逐層遞推求得最后的解 基本思想&#xff1a;解決…

X12端口配置指南:ISA ID、測試指示符與997

通過知行之橋EDI系統實現X12 & 標準XML之間的格式轉換時&#xff0c;需要完善交換頭ISA ID及其限定符、測試標識符以及997的相關配置。 在X12文件中有兩組EDI ID對&#xff0c;分別是發送方 ID 限定符 及發送方ID &#xff0c;接收方 ID 限定符及接收方ID。 比如&#xf…

STM32Cubemx配置生成 Keil AC6支持代碼

文章目錄 一、前言二、AC 6配置2.1 ARM ComPiler 選擇AC62.2 AC6 UTF-8的編譯命令會報錯 三、STM32Cubemx 配置3.1 找到stm32cubemx的模板位置3.2 替換文件內核文件3.3 修改 cmsis_os.c文件3.4 修改本地 四、編譯對比 一、前言 使用keil ARM compiler V5的時候&#xff0c;編譯…

RK3568 buildroot 使用dropbear實現ssh遠程的方法

RK3568 buildroot 使用dropbear實現ssh遠程的方法 文章目錄 RK3568 buildroot 使用dropbear實現ssh遠程的方法前言一、創建S99dropbear.sh腳本二、創建sshd_config三、添加root賬戶密碼到系統驗證登錄前言 rk3568 linux 的sdk中,buildroot已經集成了dropbear的所需的lib庫環境…

交替打印-GO

1 兩個channel 版本 package mainimport ("fmt""sync")var wg sync.WaitGroup var c1 chan int var c2 chan intfunc A(){defer wg.Done()for i:0;i<10;i {<-c1fmt.Println(2*i)c2<-1 //牽引協程} } func B(){defer wg.Done()for i:0…

Java內存區域與內存溢出異常(自動內存管理)

序言&#xff1a;Java與C之間有一堵由內存動態分配和垃圾收集技術所圍成的高墻&#xff0c;墻外面的人想進去&#xff0c;墻里面的人卻想出來。 1.1概述 對于從事C、C程序開發的開發人員來說&#xff0c;在內存管理領域&#xff0c;他們既是擁有最高權力的“皇帝”&#xff0c…

使用OpenCV在按下Enter鍵時截圖并保存到指定文件夾

使用OpenCV在按下Enter鍵時截圖并保存到指定文件夾 在這篇博客中&#xff0c;我們將介紹如何使用OpenCV庫來實現一個簡單的功能&#xff1a;在按下Enter鍵時從攝像頭截圖并保存到指定的文件夾中。這個功能可以用于各種應用&#xff0c;例如監控系統、視頻捕捉等。 前置條件 …

在FPGA程序中Handshake(握手)和Register(寄存器)區別

在FPGA程序中&#xff0c;Handshake&#xff08;握手&#xff09;和Register&#xff08;寄存器&#xff09;是兩種不同的通信和數據傳輸機制。它們各有特點和適用場景。以下是它們的區別和應用場景的詳細解釋&#xff1a; Register&#xff08;寄存器&#xff09; 特點&#…

SQLServer用戶們,你們攤上大事了!

最近一段時間&#xff0c;我們經常會收到了許多用戶的咨詢&#xff0c;問我們何時能納管SQLServer&#xff1f;耐不住小伙伴們的猛烈催促及熱切期待&#xff0c;本不想納管SQLServer的研發團隊也抓緊將這項需求提上日程。并在DBdoctor v3.2.2版本中成功實現了對SQLServer的納管…