스프링 입문
스프링 입문 5.3 AOP
코딩펭귄
2024. 1. 8. 02:25
AOP Aspect Oriented Programming
관점지향 프로그래밍
- 스프링 어플리케이션은 특별한경우를 제외하고는 대부분 MVC 웹 어플리케이션에서 web layer, business layer, data layer로 정의
1) web layer : REST API를 제공하며, Clienet 중심의 로직 제공(ex.response 내려주거나 Http statur 바꿔주는 역할)
2) business layer : 내부정책에 따른 logic를 개발하며, 주로 해당 부분을 개발
3) data layer : 데이터베이스 및 외부와의 연동 처리
- 횡단관심
- AOP : 기능 중복되는 메소드들, 특정 구역에 반복되는 로직들을 한곳에 몰아서 코딩할수있게 해줌 (스프링 어플리케이션의 특징)
- 주요 Annotation (AOP를 사용하고 싶은 클래스에 붙임)
@Aspect | 자바에서 널리 사용하는 AOP 프레임워크에 포함됨, AOP를 정의하는 Class에 할당 |
@Pointcut | 기능을 어디에 적용시킬지(메소드/어노테이션) 등 AOP를 적용시킬 지점설정 |
@Before | 메소드 실행 이전 |
@After | 메소드 실행 후 예외가 발생되더라도 실행 |
@AfterReturing | 메소드 호출 성공 실행시(Not throws) |
@AfterThrowing | 메소드 호출 실패 예외 발생(Throws) |
@Around | Before / After 모두 제어, 예외가 발생하더라도 실행할수있는 메소드에 지정 |