2016-04-30 44 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