특정 클래스에 대해 AOP 프록 싱을 방지 할 수 있습니까?일부 클래스의 AOP 프록시 방지 방지
예를 들어, Spring Security의 global-method-security
을 사용할 때. 이 경우 주석이있는 대부분의 빈을 프록시로 처리해야합니다. 그러나 일부 콩의 경우 이미 특정 특수 의미를 갖는 사용자 지정 프록시를 사용하고 있습니다.
감사합니다.
특정 클래스에 대해 AOP 프록 싱을 방지 할 수 있습니까?일부 클래스의 AOP 프록시 방지 방지
예를 들어, Spring Security의 global-method-security
을 사용할 때. 이 경우 주석이있는 대부분의 빈을 프록시로 처리해야합니다. 그러나 일부 콩의 경우 이미 특정 특수 의미를 갖는 사용자 지정 프록시를 사용하고 있습니다.
감사합니다.
나는 그것을 할 수있는 간단한 방법이 없다고 생각합니다.
이 SecuredAnnotationSecurityMetadataSource
을 확장하고 findAttributes()
메소드를 오버라이드 (override) :
나는 두 가지 옵션을 참조하십시오. 그런 다음 secured-annotation
을 사용 중지하고 metadata-source-ref
속성이있는 SecuredAnnotationSecurityMetadataSource
을 사용 설정합니다.
기타 (더 일반적인) 방법, 즉 봄 보안, 등록 bean 정의에 setBeanClassName()
방법을 사용하여 BeanFactoryPostProcessor
에 자신 AutoproxyCreator
을 AbstractAutoProxyCreator
의 shouldSkip()
메서드를 재정의하고 설정 (간단하지만 봄 보안에서만 작동) AopConfigUtils.AUTO_PROXY_CREATOR_BEAN_NAME
. 이 방법의 경우 당신은 당신이 마지막으로 (InfrastructureAdvisorAutoProxyCreator
, AspectJAwareAdvisorAutoProxyCreator
또는 AnnotationAwareAspectJAutoProxyCreator
)
AutoProxyCreator
어떤 구현에 대한 돌볼 필요