728x90
반응형
AOP는 Aspect Oriented Programming의 약자이다. 관점에 따라 프로그래밍을 하겠다는 뜻이 된다. 코드에서 공통적으로 나타나는 부가적인 기능을 모듈화하여 하나의 관점(Aspect)로 바라보고 공통화한다.
주요개념
- Aspect : 위에서 설명한 흩어진 관심사를 모듈화 한 것. 주로 부가기능을 모듈화함.
- Target : Aspect를 적용하는 곳 (클래스, 메서드 .. )
- Advice : 실질적으로 어떤 일을 해야할 지에 대한 것, 실질적인 부가기능을 담은 구현체
- JointPoint : Advice가 적용될 위치, 끼어들 수 있는 지점. 메서드 진입 지점, 생성자 호출 시점, 필드에서 값을 꺼내올 때 등 다양한 시점에 적용가능
- PointCut : JointPoint의 상세한 스펙을 정의한 것. 'A란 메서드의 진입 시점에 호출할 것'과 같이 더욱 구체적으로 Advice가 실행될 지점을 정할 수 있음
적용방법
의존성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
@AOP
특정 클래스 위에 해당 어노테이션을 작성해주면 된다. 스프링 빈으로 등록을 위해 @Component도 달아주어야 한다.
@Around
AOP를 적용할 패키지 경로, 어노테이션, 모든 메서드 등을 지정할 수 있다.
참조
1. 새로비님 블로그 - [Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP
https://engkimbs.tistory.com/746
728x90
반응형
'Programming-[Backend] > Spring' 카테고리의 다른 글
[TIL]PageableDefault는 non-deterministic sort를 한다 (0) | 2022.04.04 |
---|---|
[링크][탐험][작성중] WebMvcConfigurer, WebMvcConfigurationSupport, @EnableWebMvc (0) | 2022.03.03 |
[TIL][작성중]RestTemplate 사용하기 (0) | 2022.02.07 |
[TIL][링크] 타임리프 부트스트랩 클래스 표 - grid options (0) | 2022.02.06 |
[TIL][링크] 트랜잭션의 전파, Spring @Transactional 중첩 (0) | 2021.11.22 |