实现WebMvcConfigurer接口重写方法报错
时间: 2023-08-19 19:35:42 浏览: 146
如果您在实现`WebMvcConfigurer`接口时重写了其中的方法,但是在编译或运行时出现了错误,可能是因为您的方法签名不正确或者方法内部出现了错误。
通常情况下,当您重写一个接口的方法时,需要保证方法签名与接口中定义的方法签名完全一致,包括方法名、参数列表和返回类型等。如果您的方法签名不正确,编译器会提示错误信息。
例如,如果您想要重写`addInterceptors`方法,需要保证方法签名与接口中定义的方法签名一致,如下所示:
```
@Override
public void addInterceptors(InterceptorRegistry registry) {
// your implementation here
}
```
如果您的方法签名正确,但是在方法内部出现了错误,可能会在编译时通过,但是在运行时会抛出异常。在这种情况下,您可以通过查看异常信息来确定错误原因,并进行相应的修复。
另外,如果您使用的是 Spring Boot 2.0 或更高版本,可以使用`@Override`注解来标记您所重写的方法,这样可以帮助您更容易地发现方法签名不正确的问题。例如:
```
@Override
public void addInterceptors(InterceptorRegistry registry) {
// your implementation here
}
```
希望以上内容能够帮助到您。
相关问题
实现WebMvcConfigurer接口不让重写
在 Java 中,接口中的方法默认是抽象的,需要实现类去重写实现。如果您想要实现一个接口,但又不想重写其中的所有方法,可以使用适配器模式。具体来说,在您的类中实现接口,但是只重写您关心的方法,其他方法可以不实现,然后通过适配器类去实现接口。这样,您就可以实现接口,但不需要重写所有方法。
例如,在实现WebMvcConfigurer接口时,您可以创建一个适配器类`WebMvcConfigurerAdapter`,继承该类并重写您关心的方法即可,其他方法就可以不实现。
以下是示例代码:
```
public class MyWebMvcConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 实现您关心的方法
}
}
```
需要注意的是,`WebMvcConfigurerAdapter`类已经在Spring 5.0版本中被标记为过时了,所以建议您直接实现`WebMvcConfigurer`接口,并在需要重写的方法上使用`@Override`注解。
拦截器实现WebMvcConfigurer接口失效,使用WebMvcConfigurationSupport却成功为什么
根据提供的引用内容,推荐的方式是实现WebMvcConfigurer接口或继承EnableWebMvcConfiguration/DelegatingWebMvcConfiguration类来添加自定义拦截器。但是有时候实现WebMvcConfigurer接口添加的拦截器可能会失效,而使用WebMvcConfigurationSupport却可以成功添加拦截器。这是因为WebMvcConfigurationSupport是Spring MVC提供的一个配置类,它提供了一些默认的配置,包括一些拦截器的配置。如果我们继承WebMvcConfigurationSupport并重写其中的方法,就可以实现自定义的拦截器配置。但是需要注意的是,继承WebMvcConfigurationSupport会覆盖Spring MVC提供的默认配置,可能会导致一些问题,因此不推荐直接继承WebMvcConfigurationSupport。
阅读全文