我有Spring Data REST Spring Boot应用程序 .
我有以下课程:
用于身份验证的数据JPA存储库:
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
API使用的安全数据REST存储库:
@RepositoryRestResource
@Secured(Role.ROLE_USER_READ)
public interface UserDataRestRepository extends PagingAndSortingRepository<User, Long> {
@Override
@Secured(Role.ROLE_USER_WRITE)
<S extends User>S save(S entity);
@Override
@Secured(Role.ROLE_USER_DELETE)
void delete(Long id);
}
存储库REST配置器适配器:
@Configuration
public class RepositoryRestConfig extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.setRepositoryDetectionStrategy(RepositoryDetectionStrategies.ANNOTATED);
config.setReturnBodyOnCreate(true);
config.setReturnBodyOnUpdate(true);
config.setReturnBodyForPutAndPost(true);
}
}
问题是当我启动我的应用程序时,API的Data REST存储库不时不可用 . 我想这是因为Spring用第一个JPA存储库重写了用户类型的存储库bean .
在Actuator beans endpoints 中,即使REST API为/ users页面显示404,我也可以看到这两个bean .
同样,这种行为对我来说是不可预测的 - 有时它起作用,有时却不起作用 .
你知道如何告诉Spring使用确切的bean进行数据REST吗?
提前致谢 .
1 回答
经过一番调查,我发现here发布了完全相同的问题 .
另请参阅this one .
最后,我将2个存储库合并为一个,它解决了我的问题 . 但这绝对不是我喜欢的方式 .