framework/spring
스프링 AOP 설정
datajoy
2020. 5. 2. 16:51
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);
}
}