我对Spring一般比较陌生,但已经通读了Apress Spring Rest文本并获得了在Eclipse中运行的示例没有任何问题。Spring Boot - 自动注入的单个实现类
在这些例子中令我感到困惑的是物体是如何自动注入的。 例如在第8章安全中有一个QuickPollUserDetailsService
类,它实现了弹簧UserDetailsService
类。
经文说以下内容:“该SecurityConfig类声明了一个userDetailsService
财产,而它与在运行时QuickPollUserDetailsService
实例注入”
@Configuration
@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter
{
@Inject
private UserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService) .passwordEncoder(new BCryptPasswordEncoder());
}}
无处在任何文件中没有规定QuickPollUserDetailsService
将被设置。 Spring是否在这里很聪明,并且注意到QuickPollUserDetailsService
是UserDetailsService
的唯一实现者,因此假设它必须被注入? 如果是这样的话如果我有2个或更多的实现者UserDetailsService
为此欢呼 - 我看到@Qualifier注释可用于指定要使用哪个实现 –