spring-boot-starter-data-rest 资源暴露策略设置 RepositoryDetectionStrategies

最近一直在学习spring boot,今天学到了spring boot 的 rest,就照着网上的教程编码(http://blog.csdn.net/qiutongyeluo/article/details/51900509)。

代码配置也没多少,一下子就敲好了,然后启动运行并访问,然而,并没有得到预期的结果,返回错误页面404状态码。既然出错了,那就只好找了,将案例重头看一次,和本地的对比,发现只有spring-boot-starter-parent的版本不一样,案例上的是1.3.6.RELEASE,我本地的是1.5.1.RELEASE,引用的spring-data-rest的版本也不同,分别是2.4.4和2.6.0,我将我本地的spring-boot-starter-parent改1.3.6.RELEASE后运行就访问成功了,改回1.5.1.RELEASE就失败。

然后我就去百度一下两个版本的差异,但也没找到什么资料,最后只好去看官网纯英文的文档,一边有道一边看,发现spring-data-rest版本从2.5.x开始增加了资源暴露策略设置。

暴露策略有四个(下面中文是按我自己理解写的):

NameDescription
DEFAULTExposes all public repository interfaces but considers @(Repository)RestResource’s `exported flag.
默认值,策略为:ANNOTATED + VISIBILITY两个同时生效
ALLExposes all repositories independently of type visibility and annotations.
暴露所有资源
ANNOTATIONOnly repositories annotated with @(Repository)RestResource are exposed, unless their exported flag is set to false.
暴露@RepositoryRestResource和@RestResource并exported为true的资源
VISIBILITYOnly public repositories annotated are exposed.
暴露所有public的资源



配置方式:

@Component
public class RestConfigurer extends RepositoryRestConfigurerAdapter {

    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.setRepositoryDetectionStrategy(RepositoryDetectionStrategy.RepositoryDetectionStrategies.VISIBILITY);
        super.configureRepositoryRestConfiguration(config);
    }
}
@Configuration
public class RestConfigurer{

    @Bean
    public RepositoryRestConfigurer repositoryRestConfigurer() {

        return new RepositoryRestConfigurerAdapter() {
            @Override
            public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
                config.setRepositoryDetectionStrategy(RepositoryDetectionStrategy.RepositoryDetectionStrategies.VISIBILITY);
            }
        };
    }
}

将策略改为VISIBILITY就可以像以前那写rest了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值