2013-04-15 49 views
1

對於某些類可以阻止AOP代理嗎?阻止某些類的AOP代理

例如使用Spring Security的global-method-security。在這種情況下,我希望大多數具有註釋的bean都被代理。但是對於一些bean,我已經使用了具有特定語義的自定義代理。

任何想法讚賞!

回答

0

我認爲沒有一個簡單的方法來做到這一點。

我看到兩個選項:

  • 擴展SecuredAnnotationSecurityMetadataSource和覆蓋findAttributes()方法。然後禁用secured-annotation並啓用您自己的SecuredAnnotationSecurityMetadataSourcemetadata-source-ref屬性。 (更簡單,但只帶彈簧的安全工作)

  • 其他(更通用)的方法是使用在Spring Security中,即註冊的bean定義的setBeanClassName()方法覆蓋的AbstractAutoProxyCreatorshouldSkip()方法和設置自己的​​在BeanFactoryPostProcessorAopConfigUtils.AUTO_PROXY_CREATOR_BEAN_NAME。對於這種方法,你需要什麼樣的AutoProxyCreator實現你最後用(InfrastructureAdvisorAutoProxyCreatorAspectJAwareAdvisorAutoProxyCreatorAnnotationAwareAspectJAutoProxyCreator

約需照顧