私はすでにこのようなものを開発し、ジェネリックコントローラーを抽象メソッドで抽象化しました
protected abstract RestService<T, ID> getService();
および他のコントローラーは、このコントローラーを拡張してこのメソッドを実装する必要があります。また、抽象メソッドを使用したサービスに対しても同じことを行いました
protected abstract PagingAndSortingRepository<T, ID> getRepo();
リポジトリを取得して抽象サービス内で使用するには、これらの抽象クラスに @Controller または @Service がないことに注意する必要があります。Controller のサブクラスでも、ルート パスを次のように指定する必要があります。
@Controller
@RequestMapping("/customer")
public class CustomerRestController extends RestController<Customer, Long> {
抽象コントローラーでは、次のような相対パスを使用する必要があります。
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ResponseBody
public ResponseEntity<String> update(@PathVariable ID id,
@RequestBody T t) {
このソリューションに興味がある場合は、ソース コードを共有できます