我的应用程序有一些针对不同休息端点的服务。逻辑总是相同的,所以我想使用继承和泛型来避免代码重复。但一行(bodyToMono(E[].class)
)不起作用。我不明白还有其他选择(也许是最佳实践方式)吗?
家长班级:
@Configuration
@Service
public abstract class AbstractEntitiesRestService<E>{
protected abstract String getBaseUrl();
@Autowired
@Qualifier("webClient")
protected WebClient WebClient;
@Override
public E[] getObjectsFromCustomQueryImpl(CustomQuery query) {
return jtWebClient.get()
.uri(getBaseUrl())
.retrieve()
.bodyToMono(E[].class) <---- Error!
.block();
}
}
Run Code Online (Sandbox Code Playgroud)
儿童班:
@Configuration
@Service
public class UserService extends AbstractEntitiesRestService<User> {
@Value("${endpoint}")
protected String baseUrl;
@Override
protected String getBaseUrl(){
return baseUrl;
}
...
}
Run Code Online (Sandbox Code Playgroud)