实现WebMvcConfigurer类下方法会被WebSecurityConfigurerAdapter覆盖
时间: 2024-03-25 09:32:54 浏览: 104
根据提供的引用内容,可以得出以下结论:
WebMvcConfigurer是一个接口,用于配置Spring MVC的行为。它定义了一些方法,例如addInterceptors、addResourceHandlers等,用于自定义MVC配置。
WebSecurityConfigurerAdapter是Spring Security提供的一个适配器类,用于配置Web安全性。它提供了一些方法,例如configure(HttpSecurity)、configure(WebSecurity)等,用于自定义安全配置。
当我们同时实现WebMvcConfigurer和WebSecurityConfigurerAdapter时,如果两者中有相同的方法名,WebSecurityConfigurerAdapter会覆盖WebMvcConfigurer中的方法。
下面是一个示例代码,演示了如何实现WebMvcConfigurer和WebSecurityConfigurerAdapter,并且说明了WebSecurityConfigurerAdapter会覆盖WebMvcConfigurer中的方法:
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter implements WebMvcConfigurer {
// WebMvcConfigurer中的方法
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加自定义拦截器
registry.addInterceptor(new MyInterceptor());
}
// WebSecurityConfigurerAdapter中的方法
@Override
protected void configure(HttpSecurity http) throws Exception {
// 配置Spring Security的安全规则
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasRole("USER")
.anyRequest().authenticated()
.and()
.formLogin().permitAll()
.and()
.logout().permitAll();
}
}
```
在上面的示例中,addInterceptors方法是WebMvcConfigurer中的方法,用于添加自定义拦截器。configure方法是WebSecurityConfigurerAdapter中的方法,用于配置Spring Security的安全规则。当我们同时实现了这两个接口时,configure方法会覆盖addInterceptors方法。
阅读全文