English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Aspect Oriented Programming(AOP)은 의미론적으로 OOP을 보완하는 것이며, 모듈화 기능도 제공합니다. 그러나 모듈화의 핵심 단위는 측면이 아니라 클래스입니다.
AOP은 프로그램 로직을 다른 부분(관심사로 불리는)으로 나눕니다. 이는 다음과 같이 사용됩니다. 한자원 영역 관심사모듈화를 높이기 위해.
cross-cutting concerns전체 애플리케이션에 영향을 미치는 주의점이면, 가능한 한 한 곳에서 코드를 중앙화해야 합니다. 예를 들어, 트랜잭션 관리, 인증, 로그기록, 보안 등.
AOP를 왜 사용할까요?
그것은 실제 로직 전, 후, 또는 주위에 추가적인 주의점을 동적으로 추가할 수 있는 플러그인 방식을 제공합니다. 예를 들어, 한 클래스에10개의 메서드, 다음과 같이 보입니다:
class A{ public void m1(){...} public void m2(){...} public void m3(){...} public void m4(){...} public void m5(){...} public void n1(){...} public void n2(){...} public void p1(){...} public void p2(){...} public void p3(){...} }
이 방법, m으로 시작합니다5이 방법, n으로 시작합니다2이 방법, p으로 시작합니다3이 방법
현황을 이해해야 합니다저는 로그 유지 및 알림을 해야 합니다
AOP 없이의 문제우리는 m으로 시작하는 메서드에서 메서드를 호출할 수 있습니다(로그 유지 및 알림 전송). 이 경우 우리는 모든 것을 사용해야 합니다5이 방법으로 코드를 작성합니다.
그러나 고객이 이후에 '저는 알림을 보내지 않아도 되지'라고 하면, 모든 메서드를 변경해야 합니다. 이는 유지보수 문제를 유발할 수 있습니다.
AOP 솔루션우리는 메서드에서 메서드를 호출할 필요가 없습니다. 지금, 우리는 클래스의 메서드에서 다른 주의점을 정의할 수 있습니다. 예를 들어, 로그 유지, 알림 전송 등. 그것의 항목은 xml 파일에서 주어집니다.
향후에 고객이 알림 프로그램 기능을 제거하려고 한다면, 우리는 단순히 xml 파일에서 변경만 해야 합니다. 따라서 AOP에서 유지보수는 매우 쉽습니다.
AOP는 다음과 같은 경우에 주로 사용됩니다:
표현式的 업무 서비스를 제공합니다. 예를 들어, 표현식 트랜잭션 관리. 사용자가 사용자 정의 Aspect를 구현할 수 있도록 합니다.
AOP 개념 및 용어는 다음과 같습니다:
Join point Advice Pointcut Introduction Target Object Aspect Interceptor AOP Proxy Weaving
Join point는 프로그램의 어떤 점에서든, 예를 들어 메서드 실행, 예외 처리, 필드 접근 등입니다. Spring은 메서드 실행 Join point만을 지원합니다.
Advice는 특정 Join point에서 취하는 작업을 의미합니다. 다양한 종류의 Advice가 있습니다:
Before Advice: 그것은 Join point 전에서 실행됩니다. After Returning Advice: 연합점이 정상적으로 완료되면 실행됩니다. After Throwing Advice: 메서드가 예외를 발생시켜 빠져나올 경우 실행됩니다. After (finally) Advice: Join point에서 정상적으로 빠져나오거나 예외로 빠져나오든, 그것은 항상 Join point 후에 실행됩니다. Around Advice: 그것은 Join point 전후에서 실행됩니다.
그것은 AOP의 하나의 표현 언어로, Join point와 일치합니다.
이는 추가된 타입의 다른 메서드와 필드를 의미합니다. 이는 새로운 인터페이스를 어떤 조언 객체에도 도입할 수 있게 합니다.
이는 하나 이상의 조언 기능을 포함한 객체입니다. Spring에서는 프록시 객체라고도 합니다. Spring AOP는 실행 시 프록시를 사용하여 구현됩니다.
이는 조언 기능, Join point 등을 포함한 클래스입니다.
이는 단 하나의 조언 기능을 포함한 기능입니다.
이는 AOP 프레임워크가 생성한 기능 계약을 구현하기 위해 사용됩니다. Spring 프레임워크에서는 JDK 동적 프록시나 CGLIB 프록시가 될 것입니다.
이는 기능을 다른 응용 프로그램 유형이나 객체와 연결하여 조언 객체를 생성하는 과정입니다. 웨빙은 컴파일 시, 로드 시, 실행 시에 완료될 수 있습니다. Spring AOP는 실행 시에 웨빙을 수행합니다.
AOP 구현은 다음과 같이 제공됩니다:
AspectJ SpringAOP JBoss AOP
Spring AOP는 다음 세 가지 방식으로 사용할 수 있습니다. 그러나 널리 사용되는 방식은 Spring AspectJ 애노테이션 스타일입니다. Spring AOP 사용 사례는 다음과 같습니다.3이 방법:
Spring을 사용하여1.2오래된 스타일(DTD 기반)(Spring에서)3중국에서도 지원됩니다) AspectJ 애노테이션 스타일을 통해 스타일 설정을 통해 Spring XML 구성(모델 기반)