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));
}
}
}