java重写默认Spring数据REST配置
我试图定制一个SpringDataREST+QueryDSL+JPA应用程序来处理定制的web服务查询参数。给定一个简单的域模型及其存储库
public class Person {
private Long id;
private String name;
private Integer age;
...
}
@RepositoryRestResource
public interface PersonRepository extends PagingAndSortingRepository<Person, Long>, QueryDslPredicateExecutor<Person> {
}
我希望能够通过以下方式执行动态web服务查询,这些查询将映射到QueryDSL谓词操作:
/person?name=Joe // works by default
/person?nameEndsWith=oe // resolves to path 'person.name' with operations 'ENDS_WITH'
/person?ageGreaterThan=20 // resolves to path 'person.age' with operation 'GT'
要做到这一点,最简单的方法似乎是覆盖Spring数据REST使用的默认QuerydslPredicateBuilder
。这个bean是作为RepositoryRestMvcConfiguration
类中RootResourceInformationHandlerMethodArgumentResolver
bean创建的一部分创建的。这带来了几个问题
关于如何在自动配置类中重写bean,没有明确的文档。我可以扩展
RepositoryRestMvcConfiguration
并重写bean方法,但不清楚这是否会破坏任何其他配置使用
QuerydslPredicateBuilder
,RootResourceInformationHandlerMethodArgumentResolver
的默认HandlerMethodResolver
不是公共类。我基本上需要复制这个现有类的代码,以使其按预期工作鉴于上述问题,似乎奇怪的是,没有一种更简单的方法来定制这种行为。我错过什么了吗
在SpringDataREST中重写默认配置bean的最佳实践是什么
共 (0) 个答案