gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:02:00 25 4
gpt4 key购买 nike

我在依赖项 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 被调用了两次,这让我相信这不是我应该做的。

如何有条件地启动我的配置?

最佳答案

您可以尝试这样做,将您的配置创建为 bean:

@Bean
public RepositoryRestConfigurer repositoryRestConfigurer() {
return new RepositoryRestConfigurer() {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.exposeIdsFor(Class1.class, Class2.class);
}
};
}

关于java - 如何使用条件注释覆盖 spring 中的配置(例如),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60612688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com