我對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註釋可用於指定要使用哪個實現 –