2016-11-16 8 views
3

무엇 아래 이들의 차이 ...AOP 대 봄 보안

@org.aspectj.lang.annotation.Aspect 
public class Test { 
    //@Pointcut, @Around etc etc.. 
} 

그리고

public aspect Test { 

} 

그리고 무엇

  • 봄 .. 중 보안을 위해 사용하는 것이 좋습니다 보안 &
  • AOP
  • 봄 응용 프로그램에서 5,

답변

7

확인 here

화면 선언은 org.aspectj.lang.annotation.Aspect 주석에 의해 지원됩니다. 선언 :

public aspect Foo {} 

NOTE :

@Aspect 
public class Foo {} 

는 동등 첫번째는 스프링에 의해 검출된다. 나중에 AspectJ가 필요하다.

그리고 두 번째 질문입니다. 비교가 불가능합니다. 첫 번째 프레임 워크는 프레임 워크이므로 나중에는 패러다임입니다. Spring 보안은 AOP를 사용하여 메소드 호출을 보호하고 AOP는 보안 메커니즘이 아닙니다. 물론, AOP를 사용하여 자체 보안을 구축하지 않으면 휠을 다시 발명하게됩니다. 클래스 화면을 만들 것입니다 @Aspect 주석과 클래스 Test을 표시

+0

즉, 내 보안 부분을 직접 사용자 정의하려면 Core AOP가 더 좋습니다. 그리고 주문 된 코드를 얻으려면 Spring Security Framework가 좋습니다. 그렇지 않습니까? –

+2

봄은 완전한 보안 보안 슈트입니다 ... 모든 종류의 유스 케이스를 지원할 수 있으므로 문서를 체크 아웃하는 것이 좋습니다. AOP보다 훨씬 필요한 기능적 보안을 만들려면 AOP가 메소드 호출을 가로 챌 수있는 방법입니다. 보안을 유지하려면 훨씬 더 많은 것을 필요로합니다. 필터, 공급자, 컨트롤러 ...를 만들 수 있지만 그 이유는 무엇입니까? 스프링 시큐리티는 금융 시스템을 포함한 모든 종류의 프로젝트를 보호하는 데 사용됩니다. –

+0

물론 스프링 보안 문서를 읽어 보겠습니다. 그건 그렇고, Struts는 어떨까요! 기존 Struts1 프로젝트에서 AOP를 사용할 수 있습니까? –

1

, 당신은 당신이 별도의 유지 귀하의 추가 cross-cutting functinality (기능을 정의 할 수 있습니다, 지금 advices, pointcuts, joinpoints을 찾아 읽고 클래스를 검색합니다 봄의 ApplicationContext 또는 BeanFactory 의미 메소드 호출 전, 메소드 호출 후, 메소드가 예외를 던지기 전과 같이 어떤 이벤트에 대해 실행되기를 원한다면).

AOP (Aspect-oriented programming)은 교차 절단 기능을 제공하기 위해 스프링이 따르는 디자인 패턴입니다 Spring Security은 완전한 스프링 프레임의 일부입니다. 당신의 애플리케이션을 보호하는데 사용할 수있는 작업.

스프링 보안은 내부적으로 AOP와 필터를 사용하여 작업을 수행합니다.

1

첫 번째 것은 주석 스타일 구문이며 Spring AOP와 순수 AspectJ에서 모두 사용할 수 있으며 두 번째는 기본 AspectJ 구문이며 프록시 기반 Spring AOP가 아닌 순수 AspectJ에서만 작동합니다. 그러나 순수 AspectJ (AspectJ 컴파일러로 컴파일 됨)는 Spring 매뉴얼의 Using AspectJ with Spring applications 장에서 설명한대로 Spring 프로젝트에 통합 될 수있다.

보안을 구현하는 데 더 적합한 방법은 유스 케이스를 자세하게 설명하지 않는 한 철학적 인 질문이지만, 일반적인 제안은 다음과 같습니다. 스프링 프레임 워크를 사용하는 경우 보안 메커니즘을 사용하십시오.Spring AOP를 사용하고자하기 때문에 Spring을 사용하는 것을 고려한다면, 단일 목적으로 만 사용되는 큰 프레임 워크에서 멀리 떨어져 보안을 구현하기 위해 POJO 애플리케이션에서 순수한 AspectJ를 사용하는 것이 좋다.