我對Spring Data Rest實現(版本2.5.2.RELEASE)有奇怪的行爲。Spring Data Rest:ResourceProcessor配置不能正常工作
我正在嘗試註冊@Bean
的ResourceProcessor<Resource<Entity>>
,但有些奇怪。
1)在一個類中聲明的@Bean
:
@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
:
@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;
}
}
我有兩種解決方案嘗試
處理器ar完全忽略:郵件從不打印。
我注意到類org.springframework.data.rest.webmvc.ResourceProcessorInvoker
有一個構造函數:
public ResourceProcessorInvoker(Collection<ResourceProcessor<?>> processors) {
//...
}
此構造是在應用程序,而不是僅一次的開始調用2次(我會期待),和我不明白爲什麼。
第一次,「處理器」變量用兩個bean(如預期的)和bean org.springframework.data.rest.webmvc.ProfileResourceProcessor
解決。
但第二次,「處理器」變量只解決了豆org.springframework.data.rest.webmvc.ProfileResourceProcessor
。
第二個配置@Override第一個。
有什麼想法?