Java 升级到Spring Boot 1.5-如何重构RepositoryRestMvcConfiguration?
升级到Spring Boot 1.5后,将不会编译以下代码。显然,这两种方法(Java 升级到Spring Boot 1.5-如何重构RepositoryRestMvcConfiguration?,java,spring,rest,spring-boot,configuration,Java,Spring,Rest,Spring Boot,Configuration,升级到Spring Boot 1.5后,将不会编译以下代码。显然,这两种方法(configureRepositoryRestConfiguration,configureValidatingRepositoryEventListener)已从RepositoryRestMVCCConfiguration类中删除。我还没有找到任何关于在SpringBoot1.5中通过Java配置rest控制器的“正确”方法的文档。我在Spring Boot 1.5+上找到的所有指南都涉及基于XML的配置,而我宁愿
configureRepositoryRestConfiguration
,configureValidatingRepositoryEventListener
)已从RepositoryRestMVCCConfiguration
类中删除。我还没有找到任何关于在SpringBoot1.5中通过Java配置rest控制器的“正确”方法的文档。我在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);
}
}
经过多次猜测,我终于找到了解决办法。您只需将RepositoryRestMvcConfiguration
更改为repositoryrestconfiguureradapter
,并将@配置
更改为@组件
。这是假设您有组件扫描设置
@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);
}
}