Qualifier
用于Bean,以明确表示您希望注入该Bean。在我的Spring Boot应用程序中,我有以下bean
@Service
public class AppUserDetailsService implements UserDetailsService {
// implementation omitted
}
我将此bean注入到下面的类中
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private AppUserDetailsService appUserDetailsService;
// remainder of implementation omitted
}
如果我更改bean以便实现多个接口,即
@Service
public class AppUserDetailsService implements UserDetailsService, UserService {
// implementation omitted
}
依赖项注入失败,并出现以下错误
由以下原因引起:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为'securityConfiguration'的bean时出错:通过字段'appUserDetailsService'表示的不满足的依赖性;
为什么向bean添加第二个接口会导致依赖项注入失败?
如果我将@Autowired
成员更改为使用接口类型而不是类类型,也会发生此问题,>
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService appUserDetailsService;
// remainder of implementation omitted
}
在我的Spring Boot应用程序中,我有以下bean @Service公共类AppUserDetailsService实现UserDetailsService {//省略了实现}我将此bean注入到@ ...下面的类中。
Qualifier
用于Bean,以明确表示您希望注入该Bean。Qualifier
用于Bean,以明确表示您希望注入该Bean。