如何使用条件注释(例如)覆盖spring中的配置]]

问题描述 投票:0回答:1

我在依赖项jar中有以下可用类:


@Configuration
@EnableSpringDataWebSupport
public class RepositoryRestConfig extends RepositoryRestConfigurerAdapter {

    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.setBasePath(CoreHttpPathStore.REST_PATH);
        config.setReturnBodyOnCreate(true);
        config.setReturnBodyOnUpdate(true);
        config.hasResourceMappingForDomainType(GrantedAuthority.class);
    }

    @Override
    public void configureJacksonObjectMapper(ObjectMapper mapper) {
        super.configureJacksonObjectMapper(mapper);
        mapper.registerModule(new JavaTimeModule());
        mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
    }

}

我希望这是默认配置,但是在某些情况下,我必须添加一些配置,为此,我在应用程序中创建了这个新类:


@Configuration
@EnableSpringDataWebSupport
public class MyAppRepositoryRestConfig extends RepositoryRestConfig {

    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        super.configureRepositoryRestConfiguration(config);
        config.exposeIdsFor(
                User.class,
                Client.class,
                Role.class,
                Organization.class,
        );
    }

//  @Override
//  public void configureJacksonObjectMapper(ObjectMapper mapper) {
//      super.configureJacksonObjectMapper(mapper);
//  }

}

问题是jar中的方法configureRepositoryRestConfiguration被调用了两次,这让我相信这不是我应该做的。

我如何有条件地引导我的配置?

我在依赖项jar中有以下可用类:@Configuration @EnableSpringDataWebSupport公共类RepositoryRestConfig扩展了RepositoryRestConfigurerAdapter {@Override ...

java spring spring-boot spring-data spring-data-rest
1个回答
0
投票

您可以尝试执行此操作,将配置创建为Bean:

© www.soinside.com 2019 - 2024. All rights reserved.