스프링에 태랜젹션 적용을 위해서
서블릿 설정파일에
<!-- transaction 설정 -->
<beans:bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<beans:property name="dataSource" ref="dataSource"/>
</beans:bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="requiredTx" expression="execution(* com.javalec.spring_mybatis.dao..*Dao.*(..)) or execution(* com.javalec.spring_mybatis..*Dao.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
설정과
pom.xml에
AOP 설정
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
을 하고 서버를 기동하니 아래와 같은 에러가 발생했다.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mvcContentNegotiationManager': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
에러 내용을 보니 결국 org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException 파일이 없다는 것이다.
뭐지 한참을 삽질을 하다가
AOP 메이블 설정을 잘못한 것이다.
위 설정이 아닌 아래 설정을 해야 하는데 실수한 것이다.
<!-- AspectJ Weaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
로 설정을 해야 한다.
weaver가 AOP에서 advice를 핵심기능에 적용하는 설정 파일이라고 합니다.
'Java' 카테고리의 다른 글
이클립스 Data Source Explorer 사용하기 - 전자정부프레임워크 (0) | 2017.08.04 |
---|---|
전자정부표준프레임워크 eGovFrame 통합예제에서 엑셀다운로드 시 페이지없음(404) 에러 (0) | 2017.08.03 |
톰캣 실행시 오류 : java.util.zip.ZipException: invalid CEN header (bad signature) (0) | 2017.07.31 |
스프링 메이븐 오라클 jdbc 드라이버 pom.xml에 dependency 설정 (2) | 2017.07.27 |
이클립스, git, github 사용하기 (0) | 2017.07.17 |