Written by
spring-style
on
on
Spring AOP
Spring AOP
AOP는 Aspect Oriented Programming의 약자로 '측면/양상 지향적인 프로그래밍'이라는 의미이다.
'측면/양상 지향 프로그래밍'이 무엇을 의미하는가?
위와 같이 동일한 일을 하는 코드 AAAA, BBBB가 여기저기서 사용되고 이렇게 흩어져있으면 코드 변경이 필요한 경우 일일이 다 찾아서 바꿔야한다.
AOP는 그렇게 하지 않고 여러군데서 사용되는 중복되는 코드를 떼어내서 분리하고, method a, b, c는 자신이 해야할 작업만 갖고있자는 개념이다.
여기서 '여러군데서 사용되는 중복되는 코드'가 AOP에서 말하는 'aspect'라고 이해하면 된다.
@Transactional 애노테이션이 붙어있으면 OwnerRepository 타입의 프록시가 새로 만들어지고 Spring AOP에 의해 자동으로 생성되는 OwnerRepository의 프록시에는 @Transactional 애노테이션이 지시하는 코드가 삽입된다.
from http://emptylab.tistory.com/286 by ccl(A) rewrite - 2021-12-09 22:01:47