2017-02-10 69 views
0

我已將spring-boot-starter-data-restspring-boot-starter-data-hateoas添加到我的項目的依賴項中。 但是,我不想在生產機器上公開其餘的api。 我正在尋找一種僅爲一個特定配置文件啓用剩餘端點的方法。 我已經添加@SpringBootApplication (exclude = {RepositoryRestMvcAutoConfiguration.class})和增加的配置Spring Data Rest:僅在特定配置文件中啓用

@Profile({"dev"})              
@Configuration               
@Import({RepositoryRestMvcAutoConfiguration.class,      
PagedResourcesAssembler.class})           
public class DevConfiguration extends RepositoryRestMvcConfiguration { 
... 

但這含鉛走不通,因爲我無法導入所有類失蹤。 我很想避免產生兩個文物

回答

0

您可以配置Spring數據REST只考慮那些標註了@RepositoryRestResource@RestResource庫和沒有出口標誌未設置爲false。您可以添加到您的個人資料的生產,這樣就不會暴露他們:

@Profile("prod") 
@Configuration 
public class RepositoryRestConfig extends RepositoryRestConfigurerAdapter { 
    @Override 
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { 
     config.setRepositoryDetectionStrategy(RepositoryDetectionStrategy.RepositoryDetectionStrategies.ANNOTATED); 
    } 
} 

我相信它在2.5.0.RELEASE

+0

的頭紡紗做出的''RepositoryDe​​tectionStrategy'的ANNOTATED'的雙重否定加。 我在最後做了什麼: 我使用'@RepositoryRestResource(exported = false)'註釋了所有的存儲庫並創建了一個基於你的Bean,但是用'@Profile(「dev」)註釋了它' 在我設置的重寫方法檢測策略爲'RepositoryDe​​tectionStrategy.RepositoryDe​​tectionStrategies.ALL' 這意味着:默認情況下,所有回購都被禁用。使用配置文件「dev」,我可以啓用它們。 我會接受你的回答,因爲它會讓我走向正確的道路! 謝謝! – CyclingSir

+0

偉大的我可以幫助以某種方式:)我的解決方案不會要求您添加任何註釋到您的存儲庫,它會是最不干擾的方式,但都達到相同的結果。 – nanodgb

相關問題