7. AOP 프로그래밍 #1 프로젝트 준비

2021. 7. 27. 15:18JAVA/Spring

본 글은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다.

7.1 프로젝트 준비

step1 메이븐 프로젝트의 pom.xml 파일에 aspectj.weaver 의존을 추가 후 컴파일

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
		http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>sp5</groupId>
	<artifactId>sp5-chap07</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.0.2.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.13</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>utf-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

step2 mvn compile

step3 IDE에서 Import 수행

 

AOP 실습을 위한 클래스 정의

1. Calculator.java

package chap07;

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

2. ImpeCalculator.java

package chap07;

public class ImpleCalculator implements Calculator{

	@Override
	public long factorial(long num) {
		long result  = 1;
		for(long i=1; i<=num;i++)
		{
			result *= i;
		}
		return result;
	}
	
}

3. RecCalculator.java

package chap07;

public class RecCalculator implements Calculator{

	@Override
	public long factorial(long num) {
		if(num==0)
		{
			return 1;
		}
		else
		{
			return num * factorial(num-1);
		}
	}
	
}
초보 웹 개발자를 위한 스프링5 프로그래밍 입문, 최범균 저