簡體   English   中英

Java / Spring:提供通用的實現Java函數(Supplier或Function…)

[英]Java/Spring: Provide a common implementation java function (Supplier or Function…)

目前,我正在上這堂課:

@Component
public class AuditFactory {

    private Supplier<String> auditIdSupplier;

    public AuditFactory(Supplier<String> auditIdSupplier) {
        this.auditIdSupplier = auditIdSupplier;
    }
}

我已經編碼了兩個使用此AuditFactory項目。

目前,我正在使用@Bean提供它們:

在項目front-office

@Bean
public Supplier<String> auditIdSupplier(FrontOfficeProperties frontOfficeProperties) {
    return () -> String.join(
        "-",
        frontOfficeProperties.getCpdId(),
        UUID.randomUUID().toString()
    );
}

在項目back-office

@Bean
public Supplier<String> auditIdSupplier(BackOfficeProperties backOfficeProperties) {
    return () -> String.join(
        "-",
        backOfficeProperties.getCpdId(),
        UUID.randomUUID().toString()
    );
}

因此,我想避免創建與我需要的項目一樣多的Supplier<String>實現,以提供相同的方法來創建提供id的通用方法。

唯一改變的是一個參數( cpdid )。

因此,我想我可以創建一個從Supplier<String>繼承的類,但是我不太清楚如何獲得它。

假設AuditFactory存儲在單獨的模塊中,則只需將Supplier<String> auditIdSupplier()移至該模塊, FrontOfficePropertiesBackOfficeProperties實現相同的c接口。

然后,無論何時建立front-officeback-office ,都將注入適當的OfficeProperties

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM