스프링 AOP와 프록시 패턴
1. AOP(Aspect of Programming)
관점 지향 프로그래밍
흩어진 AAAA 와 BBBB
class A {
method a () {
AAAA -> AAA
오늘은 7월 4일 미국 독립 기념일이래요.
BBBB -> BB
}
method b () {
AAAA -> AAA
저는 아침에 운동을 다녀와서 밥먹고 빨래를 했습니다.
BBBB -> BB
}
}
class B {
method c() {
AAAA -> AAA
점심은 이거 찍느라 못먹었는데 저녁엔 제육볶음을 먹고 싶네요.
BBBB -> BB
}
}
모아 놓은 AAAA 와 BBBB
class A {
method a () {
오늘은 7월 4일 미국 독립 기념일이래요.
}
method b () {
저는 아침에 운동을 다녀와서 밥먹고 빨래를 했습니다.
}
}
class B {
method c() {
점심은 이거 찍느라 못먹었는데 저녁엔 제육볶음을 먹고 싶네요.
}
}
class AAAABBBB {
method aaaabbb(JoinPoint point) {
AAAA
point.execute()
BBBB
}
}
2. AOP 구현 방법
다양한 AOP 구현 방법(옵션)
- 컴파일 : A.java ----(AOP)---> A.class (AspectJ)
컴파일 중간에 AOP를 조작 - 바이트코드 조작 : A.java -> A.class ---(AOP)---> 메모리 (AspectJ)
클래스 로더가 클래스 파일을 로딩하는 시점에서 AOP를 조작 - 프록시 패턴(런타임) (스프링 AOP)
프록시 패턴 : 기존 코드를 건드리지 않고 새 기능 추가하기
Payment : 서비스 인터페이스
Cash : 서비스
CreditCard : 프록시
참고
- 인프런 : 예제로 배우는 스프링 프레임워크 입문(백기선)
- https://refactoring.guru/design-patterns/proxy
- https://www.eclipse.org/aspectj/
Author And Source
이 문제에 관하여(스프링 AOP와 프록시 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsj3282/스프링-AOP와-프록시-패턴저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)