AOP 적용 안되는 현상
- 작성자 :
- 채*용
- 작성일 :
- 2020-10-12 10:33:48
- 조회수 :
- 4,021
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요
전에 일 묻고답하기 12236번에 문의 드린 내용 입니다
추가로 상세히 기록 해보겠읍니다
context-aspect.xml에서
일
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean id="xplatformAspectJ" class="egovframework.rte.cmmn.ria.xplatform.map.TableMetaDataAspectJ"/>
설정하고
@Aspect
public class TableMetaDataAspectJ2 {
@Pointcut("execution(* com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(..))") <---- aop작동 안됨
public void handleResults() {}
@Before("handleResults() && args(statementScope, rs, skipResults, maxResults, callback)") <---- aop작동 안됨
public void beforeHandleResults(StatementScope statementScope, ResultSet rs, int skipResults, int maxResults, RowHandlerCallback callback) {
ResultSetMetaData metaData = null;
try {
metaData = rs.getMetaData();
DataSet dataset = new DataSet();
........................
........................
}
as_is 개발환경: JDK1.7, egovFramework 3.0, Nexacro14
to-be 개발환경: JDK1.8, egovFramework 3.8, Nexacro14
[결론]
as_is 개발환경에서는 정상적으로 작동을 합니다
to_be 개발환경에서 AOP갈 걸리지 않는 현상 입니다
추가로 debug를 해보면 com.ibatis.s...handleResults를 실행되면서
@Pointcut에 안걸린다는 문제 입니
전에 일 묻고답하기 12236번에 문의 드린 내용 입니다
추가로 상세히 기록 해보겠읍니다
context-aspect.xml에서
일
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean id="xplatformAspectJ" class="egovframework.rte.cmmn.ria.xplatform.map.TableMetaDataAspectJ"/>
설정하고
@Aspect
public class TableMetaDataAspectJ2 {
@Pointcut("execution(* com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(..))") <---- aop작동 안됨
public void handleResults() {}
@Before("handleResults() && args(statementScope, rs, skipResults, maxResults, callback)") <---- aop작동 안됨
public void beforeHandleResults(StatementScope statementScope, ResultSet rs, int skipResults, int maxResults, RowHandlerCallback callback) {
ResultSetMetaData metaData = null;
try {
metaData = rs.getMetaData();
DataSet dataset = new DataSet();
........................
........................
}
as_is 개발환경: JDK1.7, egovFramework 3.0, Nexacro14
to-be 개발환경: JDK1.8, egovFramework 3.8, Nexacro14
[결론]
as_is 개발환경에서는 정상적으로 작동을 합니다
to_be 개발환경에서 AOP갈 걸리지 않는 현상 입니다
추가로 debug를 해보면 com.ibatis.s...handleResults를 실행되면서
@Pointcut에 안걸린다는 문제 입니
A
안녕하세요.
표준프레임워크 센터입니다.
일전에 문의하셨다는 12236번 내용은 질문 내용과 다른 내용으로
현재 말씀해주신 정보상으로는 특이점을 발견하지 못했습니다.
다만 aspect 의 bean이 TableMetaDataAspectJ2 가 아닌 TableMetaDataAspectJ을 참조하는 것으로 보입니다.
오타 체크를 한번 해 보시는것이 좋을 것 같습니다.
한가지 의문스러운 점은,
만약 해당 소스가 전자정부 3.0에서 동작을 했다면
3.8에서 또한 동작 했을것으로 보여집니다.
개별 설정이 변경된 것은 아닌지 의심이 됩니다.
자세한 사항들은 아래 페이지들을 참고 바랍니다.
https://jaehun2841.github.io/2018/07/22/2018-07-22-spring-aop4/#%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%A1%9C%EB%93%9C-%EC%8B%9C-%EC%9C%84%EB%B9%99-ltw-load-time-weaving
https://stackoverflow.com/questions/52557650/apply-aspect-on-non-spring-managed-beans
감사합니다.
표준프레임워크 센터입니다.
일전에 문의하셨다는 12236번 내용은 질문 내용과 다른 내용으로
현재 말씀해주신 정보상으로는 특이점을 발견하지 못했습니다.
다만 aspect 의 bean이 TableMetaDataAspectJ2 가 아닌 TableMetaDataAspectJ을 참조하는 것으로 보입니다.
오타 체크를 한번 해 보시는것이 좋을 것 같습니다.
한가지 의문스러운 점은,
만약 해당 소스가 전자정부 3.0에서 동작을 했다면
3.8에서 또한 동작 했을것으로 보여집니다.
개별 설정이 변경된 것은 아닌지 의심이 됩니다.
자세한 사항들은 아래 페이지들을 참고 바랍니다.
https://jaehun2841.github.io/2018/07/22/2018-07-22-spring-aop4/#%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%A1%9C%EB%93%9C-%EC%8B%9C-%EC%9C%84%EB%B9%99-ltw-load-time-weaving
https://stackoverflow.com/questions/52557650/apply-aspect-on-non-spring-managed-beans
감사합니다.