我正在阅读Spring in Action第5版。在第4部分(保护Spring)中,他想覆盖由Sping Boot 自动配置的安全性...所以他创建了一个名为SecurityConfig的配置类,如下所示:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
}
同样,在Javadoc of @EnableWebSecurity中,它们也执行相同的操作
他们还说:
将此注解添加到@Configuration类中,以便在任何WebSecurityConfigurer中定义Spring Security配置,或者更有可能通过扩展WebSecurityConfigurerAdapter基类并覆盖各个方法来定义
但@EnableWebSecurity已是 @Configuration 。以下是确认此操作的代码:
@Retention(RUNTIME)
@Target(TYPE)
@Documented
@Import({WebSecurityConfiguration.class,org.springframework.security.config.annotation.web.configuration.SpringWebMvcImportSelector.class,org.springframework.security.config.annotation.web.configuration.OAuth2ImportSelector.class,org.springframework.security.config.annotation.web.configuration.HttpSecurityConfiguration.class})
@EnableGlobalAuthentication
@Configuration
public @interface EnableWebSecurity
我的问题是为什么我们应该用@Configuration和@EnableWebSecurity而不是只用@EnableWebSecurity来注解一个类?
谢谢你,谢谢!
1条答案
按热度按时间nnt7mjpx1#
自从这次提交之后,就不需要用
@Configuration
来注解@EnableWebSecurity
类了。正如GitHub issue所说,
这样,在使用@Enable* 注解时,就不需要声明@Configuration。
所以,看起来开发人员已经删除了同时使用
@Configuration
和@EnableWebSecurity
的要求,但是忘记了在JavaDoc中反映这一点。