Spring Data Rest:仅在特定配置文件中启用

时间:2017-02-10 15:41:21

标签: spring spring-boot spring-data-rest

我已将spring-boot-starter-data-restspring-boot-starter-data-hateoas添加到项目的依赖项中。 但是,我还不想在生产机器上公开其余的api。 我正在寻找一种仅为一个特定配置文件启用其余端点的方法。 我已添加@SpringBootApplication (exclude = {RepositoryRestMvcAutoConfiguration.class})并添加了配置

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

但这导致无处可去,因为我无法导入所有丢失的类。 我想避免生产两件文物

1 个答案:

答案 0 :(得分:0)

您可以将Spring Data 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