Java Spring security 4-配置(AuthenticationManagerBuilder auth)在没有@Autowired的情况下工作
配置Spring安全性时:Java Spring security 4-配置(AuthenticationManagerBuilder auth)在没有@Autowired的情况下工作,java,spring,Java,Spring,配置Spring安全性时: @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired DataSource dataSource; //@Autowired protected void configure(AuthenticationManagerBuilder auth) throws Excep
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
DataSource dataSource;
//@Autowired
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
运行时,无论是否使用@Autowired,它都可以工作。
如果AuthenticationManagerBuilder不是自动连接的,它从何而来?调用者会自动将其注入方法中。无论如何,
@Autowiring
在方法参数中没有作用。那里没有“注入”“配置”只是一个接受AuthenticationManagerBuilder对象的方法
您的SecurityConfig对象实现WebSecurityConfigureAdapter,并且是一个Springbean,因为它上面有注释。还可以通过注释启用安全行为。所有这些都将导致Spring寻找WebSecurityConfigureAdapter类型的bean,以便在安全设置中发挥作用。它会找到您的bean,因为它是这些对象之一。
Spring知道这种bean应该做什么,所以它只调用该bean上的适当方法
由于您重载了WebSecurity ConfigureAdapter的一个方法,因此将调用该方法的版本
@Autowired仅适用于引用bean的成员变量