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

Spring Data Rest: Enable at specific profile only

我已将 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  {
...

但这无济于事,因为我无法导入所有 类 报告的失踪。 我很想避免产生两个人工制品

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

中添加的