[英]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()
移至該模塊, FrontOfficeProperties
和BackOfficeProperties
實現相同的c
接口。
然后,無論何時建立front-office
或back-office
,都將注入適當的OfficeProperties
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.