The following code will not compile after upgrading to Spring Boot 1.5. Apparently these two methods ( configureRepositoryRestConfiguration
, configureValidatingRepositoryEventListener
) have been removed from the RepositoryRestMvcConfiguration
class. I have not been able to find any documentation on what is the 'proper' way of configuring rest controllers in Spring Boot 1.5 via Java. All of the guides I have found on Spring Boot 1.5+ involve XML-based configuration, whereas I would strongly prefer to stick with Java-based configuration. How do I refactor this class to be compatible with the 1.5 changes?
@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);
}
}
Finally after much guessing, I found the solution. You simply have to change RepositoryRestMvcConfiguration
to RepositoryRestConfigurerAdapter
and change @Configuration
to @Component
. This is assuming you have Component scan setup.
@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);
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.