如何将方法传递到功能接口中进行重试并使其通用?

问题描述 投票:0回答:1

我想创建一个功能接口或默认方法,在其中传递 jpa 存储库方法(例如

findById
findByNumber
)并让它返回泛型类型;这样,如果应用程序无法连接到数据库,我会用
@Retryable
对其进行注释。以下是我想要通过功能接口传递的方法的示例:

Employee employee = repository.findById("2ed21");
Record record = repository.findbyNumber(311);
java spring-boot generics functional-interface
1个回答
0
投票

使用

Supplier
作为参数的简单方法怎么样,您可以在其中放置任何内容?

@Retryable(...)
public <T> T retry(Supplier<T> supplier) {
    return supplier.get();
}

用途:

Employee employee = retry(() -> repository.findById("2ed21"));
Record record = retry(() -> repository.findbyNumber(311));

一些注意事项:

© www.soinside.com 2019 - 2024. All rights reserved.