-
Spring(AOP, 관점지향 프로그래밍)Spring(전자정부 프레임 워크) 2020. 7. 22. 10:16
관점지향 프로그래밍(AOP : Aspect Oriented Programming)
a, b, c라는 클래스에서 공통된 코드를 외부로 빼놓고 필요할때 가져다 쓰는 것
장점
- 중복 코드 제거
- 수정, 삭제, 추가 시 추출된 코드만 대상으로 하면 됨.
관련 키워드
Advice : 언제. 무엇을. 어떤 공통모듈을 어떤 시점(컴파일시|로딩시|생성시|함수호출시|전역변수 값설정/취득시)에
어디에 주입할것인지를 결정함.
(분리된 코드를 언제 어디서 쓸지 결정)
JoinPoint : 어디에. 공통모듈을 어디에 주입할것인지를 결정함. (분리하기 전 해당 코드가 위치했던 장소)
PointCut : JoinPoint들의 팩키지. (분리된 코드가 있던 클래스들을 가리키는 명칭)
Weaving : Advice를 PointCut에 주입시키는 행위. (공통 코드를 실행하는 행위)
Aspect : 공통모듈 , 분리된 코드??
메소드 한개가 joinPoint
모인게 PointCut
PointCut을 만들기 위해 사용 하는 함수
1 execution() - PointCut 표현식 정의(pointcut 설정된 위빙 대상을 런타임시 감지해 동작)
1.2 call() - PointCut 표현식 정의(미리 pointcut 설정된 위빙 대상을 stack frame에 저장하고 동작)
3. within(패키지명 또는 인터페이스 또는 클래스) -
2.1 execution(접근지정자[생략가능] 반환타입[Wrapper형태,생략가능]
팩키지[생략가능].클래스[생략가능].함수명[생략가능](파라메터1,...[Wrapper or wildcard형태])
'Spring(전자정부 프레임 워크)' 카테고리의 다른 글
Intellj Lombok test폴더에서 인식 못하는 상황. (0) 2021.05.01 Spring( @PathVariable ) (0) 2020.07.16 Spring(RedirectAttributes) (0) 2020.07.16 Spring(다국어 지원) (0) 2020.07.16 Spring(인코딩, encoding 설정) (0) 2020.07.15