pom.xml 설정

		<!-- AspectJ -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>${org.aspectj-version}</version>
		</dependency>	
		
		<dependency>
		    <groupId>org.aspectj</groupId>
		    <artifactId>aspectjweaver</artifactId>
		    <version>${org.aspectj-version}</version>
		</dependency>
		           
		<dependency>
		    <groupId>org.aspectj</groupId>
		    <artifactId>aspectjtools</artifactId>
		    <version>${org.aspectj-version}</version>
		</dependency>

 

servlet-context.xml 설정

<beans:beans xmlns=
    xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<aop:aspectj-autoproxy/>

 

annotation interface 설정

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AuthorizationValidator {

}

 

aspect 설정

@Aspect
@Component
public class ValidatorAspect {
	@Pointcut("@annotation(com.netmarble.npms.aop.AuthorizationValidator)")
    public void accountValidator() {}

    @Around("accountValidator()")
    public void validateAccount(ProceedingJoinPoint joinPoint) throws Throwable {
         Map<String, Object> parameterValues = (Map<String, Object>) joinPoint.getArgs()[0];
         
         Map<String, Object> params = new HashMap<String, Object>();
         Object[] obj = new Object[] { params };
         joinPoint.proceed(obj);
    }
}

+ Recent posts