Loading...
Spring Framework Reference Documentation 7.0.2의 Aspect Oriented Programming with Spring의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Aspect-oriented Programming (AOP)은 program structure에 대해 생각하는 또 다른 방식을 제공함으로써 Object-oriented Programming (OOP)을 보완합니다. OOP에서 modularity의 핵심 단위는 class인 반면, AOP에서 modularity의 단위는 aspect입니다.
Aspect는 여러 type과 object에 걸쳐서 나타나는 concern(예: transaction management)의 modularization을 가능하게 합니다. (이러한 concern은 AOP 문헌에서 종종 "crosscutting" concern이라고 불립니다.)
Spring의 핵심 component 중 하나는 AOP framework입니다. Spring IoC container는 AOP에 의존하지 않기 때문에(원하지 않으면 AOP를 사용할 필요가 없다는 의미입니다), AOP는 Spring IoC를 보완하여 매우 강력한 middleware solution을 제공합니다.
Spring은 schema-based approach 또는 @AspectJ annotation style을 사용하여 custom aspect를 작성하는 간단하면서도 강력한 방법을 제공합니다. 이 두 style 모두 완전히 type이 지정된 advice와 AspectJ pointcut language의 사용을 제공하면서도 weaving에는 Spring AOP를 계속 사용합니다.
이 chapter에서는 schema- 및 @AspectJ-based AOP support를 다룹니다. 더 low-level인 AOP support는 다음 chapter에서 다룹니다.
AOP는 Spring Framework에서 다음과 같은 용도로 사용됩니다:
💡 generic declarative service나 pooling과 같은 기타 미리 패키징된<br>declarative middleware service에만 관심이 있다면, Spring AOP를 직접 다룰 필요가 없으며<br>이 chapter의 대부분을 건너뛸 수 있습니다.
Classes Used in the Examples
AOP Concepts