[SPRING] 7. AOP 프로그래밍

Yuri Lee·2022년 6월 21일
0

스프링

목록 보기
6/13

<프로젝트 준비>

pom.xml에 의존 추가

	<dependency>
		<groupId>org.aspectj</groupId>
		<artifactId>aspectjweaver</artifactId>
		<version>1.8.13</version>
	</dependency>

스프링 프레임워크 AOP 기능은 spring-aop 모듈이 제공. aspectjweaver 모듈은 AOP를 설정하는데 필요한 애노테이션을 제공하므로 이 의존을 추가해야함.

package chap07;

public class ImpeCalculator implements Calculator{

	@Override
	public long factorial(long num) {
		long start = System.currentTimeMillis();
		long result = 1;
		for(long i =1; i<=num; i++) {
			result*=i;
		}
		long end = System.currentTimeMillis();
		System.out.printf("ImpeCalculator.factorial(%d)실행시간=%d\n",num, (end-start));
		return result;
	}
	
}
package chap07;

public interface Calculator {
	public long factorial(long num);
}
package chap07;

//재귀호출 이용 : for문이랑 똑같다. 
public class RecCalculator implements Calculator{

	@Override
	public long factorial(long num) {
		long start = System.currentTimeMillis();
		try {
			if(num==0) {
				return 1;
			}else return num*factorial(num-1); //if구문이 만족할때까지 계속 자신을 반복호출
		
		}finally {
			long end = System.currentTimeMillis();
			System.out.printf("RecCalculator.factorial(%d)실행시간 = %d\n", num, (end-start));
		}
	}
}

<프록시와 AOP>

profile
유리

0개의 댓글