스프링 데이터 나머지 저장소는 사용자 정의 링크는 다음과 같은 엔티티에 추가 할 수 있다고 지적 :봄 데이터 나머지 사용자 정의 링크
http://docs.spring.io/spring-data/rest/docs/current/reference/html/#_the_resourceprocessor_interface
예 감안할 때 :
@Bean
public ResourceProcessor<Resource<Person>> personProcessor() {
return new ResourceProcessor<Resource<Person>>() {
@Override
public Resource<Person> process(Resource<Person> resource) {
resource.add(new Link("http://localhost:8080/people", "added-link"));
return resource;
}
};
}
하드 분명히
코딩 나쁘다 그래서 응용 프로그램에서 다른 리소스에 대한 경로를 동적으로 가져올 수있는 구성 요소를 어떻게 작성합니까?
분명한 해결책은 RepositoryRestConfiguration의 인스턴스를 주입하는 것일 수 있습니다. 그러나 주입 된 구성에서이 영역의 모든 조회는 저장소가 노출되어이 자원에 대해 작업하고 있어도 null을 반환합니다.
투영 정의, ID가있는 클래스 등의 기타 데이터가 삽입 된 RepositoryRestConfiguration에 예상대로 존재합니다. 그렇다면이 룩업에 대해 null이되는 이유는 무엇입니까? 이 지역에있는 코드의 대부분
@Component
public class CaseResourceProcessor implements ResourceProcessor<Resource<Case>>
{
@Autowired
private RepositoryRestConfiguration configuration;
@Override
public Resource<Case> process(Resource<Case> resource)
{
//null
configuration.getResourceMappingForDomainType(Submission.class).getPath();
//null
configuration.getResourceMappingForRepository(SubmissionRepository.class).getPath();
resource.add(new Link("...."));
return resource;
}
}
그러나 (I가 사용되지 않는 코드가 작동 rmain 기대하지만) 대신에 사용되어야 정확하게 명확하지 않다되지 않습니다.
기본적으로 특정 엔티티 또는 저장소의 URL을 프로그래밍 방식으로 검색합니다. 다음과 같이