【问题标题】:Upgrading to Spring Boot 1.5 - How to refactor RepositoryRestMvcConfiguration?升级到 Spring Boot 1.5 - 如何重构 RepositoryRestMvcConfiguration?
【发布时间】:2023-04-03 22:27:01
【问题描述】:

以下代码升级到 Spring Boot 1.5 后将无法编译。显然这两种方法(configureRepositoryRestConfigurationconfigureValidatingRepositoryEventListener)已从RepositoryRestMvcConfiguration 类中删除。我无法找到任何有关通过 Java 在 Spring Boot 1.5 中配置休息控制器的“正确”方式的文档。我在 Spring Boot 1.5+ 上找到的所有指南都涉及基于 XML 的配置,而我强烈更喜欢坚持使用基于 Java 的配置。如何重构此类以与 1.5 更改兼容?

@Configuration
public class CustomRepositoryRestMvcConfiguration extends RepositoryRestMvcConfiguration {

  private static final String BASE_URI = "/rest";
  @Autowired private BeforeCreateSnippetValidator beforeCreateSnippetValidator;
  @Autowired private BeforeCreateModuleValidator beforeCreateModuleValidator;

  @Override
  protected void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
    super.configureRepositoryRestConfiguration(config);
    config.setBasePath(BASE_URI);
    config.exposeIdsFor(Snippet.class, Placement.class, Module.class, Page.class, Position.class);
  }

  @Override
  protected void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener v) {
    v.addValidator("beforeCreate", beforeCreateSnippetValidator);
    v.addValidator("beforeCreate", beforeCreateModuleValidator);
  }
}

【问题讨论】:

    标签: java spring rest spring-boot configuration


    【解决方案1】:

    终于经过多次猜测,我找到了解决方案。您只需将RepositoryRestMvcConfiguration 更改为RepositoryRestConfigurerAdapter 并将@Configuration 更改为@Component。这是假设您有组件扫描设置。

    @Component
    public class CustomRepositoryRestMvcConfiguration extends RepositoryRestConfigurerAdapter {
    
      private static final String BASE_URI = "/rest";
      @Autowired private BeforeCreateSnippetValidator beforeCreateSnippetValidator;
      @Autowired private BeforeCreateModuleValidator beforeCreateModuleValidator;
    
      @Override
      public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        super.configureRepositoryRestConfiguration(config);
        config.setBasePath(BASE_URI);
        config.exposeIdsFor(Snippet.class, Placement.class, Module.class, Page.class, Position.class);
      }
    
      @Override
      public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener v) {
        v.addValidator("beforeCreate", beforeCreateSnippetValidator);
        v.addValidator("beforeCreate", beforeCreateModuleValidator);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-30
      • 2017-07-09
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2022-12-22
      相关资源
      最近更新 更多