Spring Framework를 사용한 AOP
Spring Framework의 주요 구성 요소 중 하나는 Aspect oriented programming (AOP)뼈대. Aspect-Oriented Programming은 프로그램 로직을 소위 관심사라고하는 별개의 부분으로 분해하는 것을 수반합니다. 응용 프로그램의 여러 지점에 걸쳐있는 함수가 호출됩니다.cross-cutting concerns이러한 교차 문제는 개념적으로 애플리케이션의 비즈니스 로직과 분리되어 있습니다. 로깅, 감사, 선언적 트랜잭션, 보안, 캐싱 등과 같은 측면에 대한 다양한 일반적인 좋은 예가 있습니다.
OOP에서 모듈화의 핵심 단위는 클래스이고 AOP에서는 모듈화 단위가 aspect입니다. 종속성 주입은 애플리케이션 개체를 서로 분리하는 데 도움이되며 AOP는 영향을받는 개체에서 교차 절단 문제를 분리하는 데 도움이됩니다. AOP는 Perl, .NET, Java 등과 같은 프로그래밍 언어의 트리거와 같습니다.
Spring AOP 모듈은 애플리케이션을 가로 채기위한 인터셉터를 제공합니다. 예를 들어, 메서드가 실행될 때 메서드 실행 전후에 추가 기능을 추가 할 수 있습니다.
AOP 용어
AOP 작업을 시작하기 전에 AOP 개념과 용어를 익혀 보겠습니다. 이 용어는 Spring에만 국한되지 않고 AOP와 관련이 있습니다.
Sr. 아니요 | 용어 및 설명 |
---|---|
1 | Aspect 교차 절단 요구 사항을 제공하는 API 세트가있는 모듈입니다. 예를 들어, 로깅 모듈은 로깅을 위해 AOP 측면이라고합니다. 응용 프로그램은 요구 사항에 따라 여러 측면을 가질 수 있습니다. |
2 | Join point 이것은 AOP 측면을 플러그인 할 수있는 애플리케이션의 지점을 나타냅니다. 또한 Spring AOP 프레임 워크를 사용하여 작업이 수행되는 애플리케이션의 실제 위치라고 말할 수 있습니다. |
삼 | Advice 이것은 메소드 실행 전이나 후에 취해야 할 실제 조치입니다. 이것은 Spring AOP 프레임 워크에 의해 프로그램 실행 중에 호출되는 실제 코드 조각입니다. |
4 | Pointcut 이것은 어드바이스가 실행되어야하는 하나 이상의 조인 포인트 세트입니다. AOP 예제에서 볼 수 있듯이 표현식이나 패턴을 사용하여 포인트 컷을 지정할 수 있습니다. |
5 | Introduction 소개를 통해 기존 클래스에 새 메소드 또는 속성을 추가 할 수 있습니다. |
6 | Target object 하나 이상의 측면에서 권고하는 개체입니다. 이 개체는 항상 권장 개체라고도하는 프록시 개체입니다. |
7 | Weaving Weaving은 조언 된 객체를 만들기 위해 다른 응용 프로그램 유형이나 객체와 측면을 연결하는 프로세스입니다. 이는 컴파일 타임,로드 타임 또는 런타임에 수행 할 수 있습니다. |
조언의 유형
Spring 측면은 다음과 같이 언급 된 5 가지 종류의 조언으로 작동 할 수 있습니다.
Sr. 아니요 | 조언 및 설명 |
---|---|
1 | before a 메소드 실행 전에 조언을 실행하십시오. |
2 | after 결과에 관계없이 메서드 실행 후에 조언을 실행합니다. |
삼 | after-returning 메서드가 성공적으로 완료된 경우에만 메서드 실행 후에 advice를 실행합니다. |
4 | after-throwing 예외를 발생시켜 메소드가 종료되는 경우에만 메소드 실행 후 어드바이스를 실행하십시오. |
5 | around 조언 된 메소드가 호출되기 전과 후에 조언을 실행하십시오. |
사용자 지정 측면 구현
봄은 @AspectJ annotation style 접근 및 schema-based사용자 정의 측면을 구현하는 접근 방식. 이 두 가지 접근 방식은 다음 섹션에서 자세히 설명합니다.
Sr. 아니요 | 접근 및 설명 |
---|---|
1 | XML 스키마 기반 Aspect는 XML 기반 구성과 함께 일반 클래스를 사용하여 구현됩니다. |
2 | @AspectJ 기반 @AspectJ는 aspect를 Java 5 주석으로 주석이 달린 일반 Java 클래스로 선언하는 스타일을 나타냅니다. |