2014-10-22 210 views
1

我目前正在測試spring data rest,並且我想通過REST接口公開我的實體的主鍵(id)。 (?)Spring bean GeoModule bean注入到RepositoryRestMvcConfiguration

我已經找到了正確的方式做,這就是:

public class IdExporterConfiguration extends RepositoryRestMvcConfiguration { 

    @Override 
    protected void configureRepositoryRestConfiguration(
      RepositoryRestConfiguration config) { 
     super.configureRepositoryRestConfiguration(config); 
     config.exposeIdsFor(User.class); 
    } 
} 

的問題是,如果我在我的bean的定義改成這樣:

<bean class="test.project.util.IdExporterConfiguration"/> 

從這個:

<bean class="org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration"/> 

我的應用程序無法啓動......

錯誤是:

Could not autowire field: org.springframework.data.geo.GeoModule org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration.geoModule; 
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.data.geo.GeoModule] found for dependency: 
expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

基本上它說,它沒有找到一個GeoModule豆,所以它不能自動裝配它的RepositoryRestMvcConfiguration基地......

現在最有趣的部分是,是我定義bean:

<bean class="org.springframework.data.geo.GeoModule"/> 

錯誤更改爲:

Could not autowire field: org.springframework.data.geo.GeoModule org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration.geoModule; 
nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.springframework.data.geo.GeoModule] is defined: 
expected single matching bean but found 2: jacksonGeoModule,org.springframework.data.geo.GeoModule#0 

所以如果我沒有定義一個bean,那麼有0,但是如果我定義了一個,那麼有2個?

回答

0

我仍然不知道爲什麼,但如果我使用@Configuration註釋,那麼它的工作原理... 沒有GeoModule bean需要,但它怎麼可能呢,以原始配置爲XML bean定義,但與子類,它不?

+0

對我來說,即使使用** @ Configuration **註釋,它也不起作用。 – 2015-03-22 17:32:36

+0

我問了這個問題已經有一段時間了,所以我完全不記得解決方案。 你有任何XML配置(子類或原始?) – SzaboAdam 2015-03-23 18:17:00