스프링 데이터 나머지 구현 (버전 2.5.2.RELEASE)에서 이상한 동작이 있습니다.스프링 데이터 나머지 : ResourceProcessor 구성이 제대로 작동하지 않습니다.
@Bean
을 ResourceProcessor<Resource<Entity>>
으로 등록하려고하는데 이상한 점이 있습니다. 클래스에 @Bean
선언
1) :
@Component
public class AuthorResourceProcessor implements ResourceProcessor<Resource<Author>> {
@Override
public Resource<Author> process(Resource<Author> resource) {
System.out.println("method process of class AuthorResourceProcessor");
return resource;
}
}
:
@Bean
public ResourceProcessor<Resource<Author>> authorProcessor() {
return new ResourceProcessor<Resource<Author>>() {
@Override
public Resource<Author> process(Resource<Author> resource) {
System.out.println("method process of bean ResourceProcessor of class RepositoryBaseConfiguration");
return resource;
}
};
}
2) 인터페이스 ResourceProcessor
구현
나는 두 솔루션의 종류하려고 해요
프로세서 ar e는 완전히 무시됩니다. 메시지는 절대로 인쇄되지 않습니다.
나는 클래스 org.springframework.data.rest.webmvc.ResourceProcessorInvoker
생성자가 나타났습니다 : (내가 기대로)이 생성자 대신 한 번만의 응용 프로그램의 시작 부분에 2 회를 호출
public ResourceProcessorInvoker(Collection<ResourceProcessor<?>> processors) {
//...
}
을, 그리고 이유를 이해하지 못한다.
처음으로 "프로세서"변수는 두 개의 bean (예상대로)과 bean org.springframework.data.rest.webmvc.ProfileResourceProcessor
으로 해결됩니다.
두 번째로, "프로세서"변수는 콩 org.springframework.data.rest.webmvc.ProfileResourceProcessor
만으로 해결됩니다.
두 번째 구성 @은 첫 번째 구성을 오버라이드합니다.
아이디어가 있으십니까?