ㅇ Weaving : Advice 와 target이 결합되어서 프록시 객체를 만드는 과정
ㅇ 방법은 XML을 이용하는 방법과 @Aspect 어노테이션 이용하는 방법이 있다.
ㅇ XML 활용하는 방식을 SPRING#8 공통기능구현하기1 과 함께 이어서 보자
ㅇ 오늘 해볼 것은 @Aspect 어노테이션을 이용하는 방법
공통기능 구현하기 1을 보지 않은 사람들은 먼저 본 후에 2학습하기
SPRING #8 공통기능구현하기 1(AOP) (tistory.com)
SPRING #8 공통기능구현하기 1(AOP)
1. 핵심기능을 구현하고 2. 공통기능을 구현한다. 기본적인 개념 1. pom.xml 에서 dependency 추가하기 2. Class 2개 생성해서 메소드 만들기 1) Student Class 만들기 (변수선언) 2) Student Class 에 메인함수에..
tjqud531531.tistory.com
XML 이어서
1. beforeAspect 불러오기 (expression에 함수 써보기)
ㅇ within 문법을 쓰면 클래스를 써야함
ㅇ execution 문법을 쓰면 함수를 써야함
--void com.lec.ch05.ex1.Worker.get* (ex1의 Woreker 밑의 get으로 시작하는 함수만 모두 가져와라)
-- 함수 단에 void 혹은 * 쓰면 됨
ㅇ TestMain 실행시 Worder 객체 전 beforeAdvice 수행되는것 확인
2. afterAspect (expression에 빈넣어보기)
ㅇ stud로 시작하는 모든것
ㅇ bean 안에 빈 생성시 만들어놨던 빈 이름 쓰기
3. 나머지 애들도 해보기
최종정리
ㅇaround, before , after, after-returning에 대한 개념을 확실히 잡고 어떤식으로 수행되는지 아래 실행화면과 위의 소스코드를 비교하여 그 순서에 대해 명확하게 파악해보자
ㅇ 또한 within 과 excution , bean 사용하는 방식에 대해 명확하게 알고 설명할 수 있어야 한다..
( 구현되는 형태는 동일하지만 사용하는 방식만 다를 뿐 가장 많이 활용되는 것이 within 방식이다. )
@Aspect 어노테이션
1. 각각의 클래스 생성해주기
2. applicationCTX2 에 가서 프록시 클래스에 대한 어노테이션을 읽어낼 aop 써주고, bean 생성해주기
ㅇ 프록시 클래스를 어노테이션으로 지정하겠다
ㅇ Namespaces에 가서 aop 눌러주고 아래처럼 생성해주기
ㅇ proxyclass2 이름을 가진 빈 객체 만들기
3. ProxcyClass2로 가서 클래스와 메소드 마다 어노테이션 달아놓기 (함수는 이미 구현되어 있어야함)
1) 이 아이는 proxcyclass야 라는 걸 지정할 어노테이션 @Aspect 써주기 (클래스위에)
2) 함수에 어노테이션으로 지정하는 방법은 크게 2가지
--1. 함수 위에 Pointcut 쓰고 괄호안에 within(com.lec.ch05.ex2.*) 이런거 써주고 메소드 이름 써주기
--2. 밑에 Around 어노테이션 써주고 위에 pointcut 이후 썼던 메소드명 괄호안에 넣어주기
3) 위의 어노테이션 방법을 한줄에 쓰는 방법도 있음
4) 나머지 애들도 다 어노테이션 달아주기
'LANGUAGE > SPRING' 카테고리의 다른 글
SPRING#11-1 Controller 여러개 생성(Board) (4) | 2022.07.14 |
---|---|
SPRING#10 MVC 게시판 구조이해 (0) | 2022.07.14 |
SPRING #8 공통기능구현하기 1(AOP) (2) | 2022.07.13 |
SPRING #7 외부파일을 이용한 설정 (2) | 2022.07.13 |
SPRING #6 빈의 생명주기 (0) | 2022.07.13 |