AOP 관련하여 실습을 진행중인데 뭔가 에러메시지가 많이 뜬다. 이상하다.. aop네임스페이스를 책에서 처럼 추가하였을 뿐이었는데 무엇이 문제일까..
일단, 에러메시지를 쭉 살펴보았는데 다음과같이 클래스를 찾지 못한다는 에러메시지가 뜬다.
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0': Cannot resolve reference to bean 'beanAdvicePointcut' while setting bean property 'pointcut'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'beanAdvicePointcut': Failed to introspect bean class [org.springframework.aop.aspectj.AspectJExpressionPointcut] for lookup method metadata: could not find class that it depends on; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
인터넷에서 찾아보니까 Maven 설정이 잘못되어있다는게 답이다.
기존에 다음과 같이 pom.xml 에 설정된 의존관계를 바꿔주어야 한다.
<!-- AspectJ (Before)-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<!-- AspectJ (After)-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
artifcatId를 aspectjrt -> aspectjweaver로 바꿔주면 결과는 대성공이다.
'IT > SpringFramework' 카테고리의 다른 글
SpringFramework 트랜잭션 적용하기 @Transactional, <tx:annotation-driven> (0) | 2019.12.05 |
---|---|
스프링 <aop>네임스페이스를 이용한 AOP적용 실습 (0) | 2019.12.02 |
스프링에서 Controller가 JSP만 띄우는 기능을 수행할 때 손쉽게 뷰만들기(<mvc:view-controller/>) (0) | 2019.12.01 |
스프링 Validator를 이용한 서버내 유효성 검사 (0) | 2019.11.29 |
SpringFramework ConversionService를 이용한 DataBinding (0) | 2019.11.28 |