2016-04-30 86 views
1

我正在研究的S​​pring Security的內部,我發現在WebSecurityConfiguration以下兩種方法:怪異春季使用

public void setFilterChainProxySecurityConfigurer(
     ObjectPostProcessor<Object> objectPostProcessor, 
     @Value("#{@autowiredWebSecurityConfigurersIgnoreParents.getWebSecurityConfigurers()}") List<SecurityConfigurer<Filter, WebSecurity>> webSecurityConfigurers) 
     throws Exception { 
      ... 
     } 

@Bean 
public AutowiredWebSecurityConfigurersIgnoreParents autowiredWebSecurityConfigurersIgnoreParents(
     ConfigurableListableBeanFactory beanFactory) { 
      ... 
     } 

據我瞭解{@autowiredWebSecurityConfigurersIgnoreParents.getWebSecurityConfigurers()},在第一種方法,調用方法autowiredWebSecurityConfigurersIgnoreParents。但該方法有一個參數ConfigurableListableBeanFactory beanFactory。這個參數是如何傳遞的?

回答

1

您誤解了EL-expression,它實際上從豆autowiredWebSecurityConfigurersIgnoreParents調用getWebSecurityConfigurers

方法AutowiredWebSecurityConfigurersIgnoreParents autowiredWebSecurityConfigurersIgnoreParents(ConfigurableListableBeanFactory beanFactory)是一個創造豆autowiredWebSecurityConfigurersIgnoreParents

+0

THX,這是一個完美的答案。您能否告訴我們,ConfigurableListableBeanFactory beanFactory如何傳遞以創建autowiredWebSecurityConfigurersIgnoreParents bean?我沒有看到任何自動註釋。 –

+0

我不知道,我假設spring解決了這個爭論,因爲'ConfigurableListableBeanFactory'是一些IOC的內部春天。也許你可以提出這個問題 – 2016-04-30 08:08:18