为什么要继承WebSecurityConfigurerAdapter而不是实现WebSecurityConfigurer接口
时间: 2024-08-12 07:07:36 浏览: 73
类的继承实验题
WebSecurityConfigurerAdapter 是 Spring Security 提供的一种方便的配置方式,它是一个实现了 `WebSecurityConfigurer` 接口的抽象类。选择继承 `WebSecurityConfigurerAdapter` 而不是直接实现接口的原因主要有以下几点:
1. **代码组织和可扩展性**:`WebSecurityConfigurerAdapter` 为开发者提供了一个预定义的配置结构,包含了诸如 `configure(HttpSecurity)` 方法等通用的安全配置方法。这使得代码更清晰,维护起来更容易,特别是当项目中需要添加或修改安全配置时。
2. **自动装配和依赖注入**:由于它是抽象类,Spring容器会自动为其创建实例并完成属性的注入,这样就不必手动创建对象和管理依赖。这使得代码更加依赖注入友好。
3. **集成其他配置需求**:`WebSecurityConfigurerAdapter` 集成了 `WebMvcConfigurerAdapter` 和 `WebFluxConfigurer`,使得同时处理 Web MVC 和 WebFlux 应用程序的配置变得更加方便。
4. **默认行为**:它包含了一些默认的行为和配置,如处理 CSRF(跨站请求伪造)和 HTTP Basic 认证,这样开发者可以直接在子类中覆盖或扩展这些部分,而无需从头开始。
然而,如果你确实需要自定义的配置流程或者有一些特定的需求,那么实现 `WebSecurityConfigurer` 接口并手动配置会更为灵活。在这种情况下,你应该明确地声明需要哪些配置方法,并在实现类中提供具体的实现。
阅读全文