如何在Rest资源Spring Data Rest中将Export的默认值设置为false

Ami*_*169 1 java rest spring spring-data

我想使用spring数据rest的RestResource注释。如您所知,它默认情况下公开所有CRUD方法。但是我只需要findAll方法。一种方法是将所有其他方法的导出值设置为false,如下所示:

@RestResource(path="questions")
public interface QuestionRepository extends CRUDRepository<Question,Long> {

@RestResource(exported = false)
void delete(Long id);

@RestResource(exported = false)
void create(Question q);
....
}
Run Code Online (Sandbox Code Playgroud)

但是我不喜欢这样。还有其他更简单的方法可以避免这种冶金吗?

小智 5

有一个简单的标准解决方案,我尝试并发现它可以在Spring Boot 2.0.2中工作。编写如下所示的配置类,并设置setExposeRepositoryMethodsByDefault(false)并完成:)

@Component
public class SpringRestConfiguration extends RepositoryRestConfigurerAdapter {
    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.setRepositoryDetectionStrategy(RepositoryDetectionStrategy.RepositoryDetectionStrategies.ANNOTATED);
        config.setExposeRepositoryMethodsByDefault(false);
    }
}
Run Code Online (Sandbox Code Playgroud)