gpt4 book ai didi

java - Spring security 4 - 配置(AuthenticationManagerBuilder auth)无需@Autowired即可工作

转载 作者:行者123 更新时间:2023-12-02 10:05:13 24 4
gpt4 key购买 nike

配置 Spring Security 时:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
DataSource dataSource;
//@Autowired
protected void configure(AuthenticationManagerBuilder auth) throws Exception {

运行时,无论有没有@Autowired,它都可以工作。如果 AuthenticationManagerBuilder 不是 Autowired,它从哪里来?

最佳答案

那里没有发生“注入(inject)”。 “configure”只是一个采用 AuthenticationManagerBuilder 对象的方法。

您的 SecurityConfig 对象实现了 WebSecurityConfigurerAdapter,并且由于其上的注释而成为 Spring Bean。您还可以通过注释启用安全行为。所有这些都会导致 Spring 寻找 WebSecurityConfigurerAdapter 类型的 bean 来服务于安全设置的目的。它找到您的 bean,因为它是这些对象之一。Spring 知道这种类型的 bean 应该做什么,因此它只调用该 bean 上适当的方法。

由于您重载了 WebSecurityConfigurerAdapter 的方法之一,因此将调用该方法的您的版本。

@Autowired 仅适用于引用 bean 的成员变量。

关于java - Spring security 4 - 配置(AuthenticationManagerBuilder auth)无需@Autowired即可工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55381124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com