[compile-time-weaver] 방식이라는 것이 무엇인지요
- 작성자 :
- 박*한
- 작성일 :
- 2013-02-17 17:34:00
- 조회수 :
- 1,074
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요 이전에 load-time-weaver 방식이 제우스에 적용되는지 문의했던 개발자입니다.
답변주신 내용중에 compile-time-weaver 방식이라는 것이 구체적으로 무엇인지요?
만약 ibatis 내부에 있는 api 를 참조하고자 하면 소스를 풀어놓고 컴파일을 해야 어노테이션 방식의 포인트컷이 적용되고, 소스없이 컴파일하면 적용이 안되는데요, 위의 compile-time-weaver 방식이면 해결이 될 것도 같습니다만...
aop관련하여 잘 모르고 질문하려니 두서가 없네요.
추가로 혹시 maven 의 pom.xml 파일을 통해 서버에서 빌드시에 다른 프로젝트의 소스를 참조하여 빌드 할 수 있는 방법은 없을까요.(위의 해결책으로 생각해 본 것 입니다)
답변주신 내용중에 compile-time-weaver 방식이라는 것이 구체적으로 무엇인지요?
만약 ibatis 내부에 있는 api 를 참조하고자 하면 소스를 풀어놓고 컴파일을 해야 어노테이션 방식의 포인트컷이 적용되고, 소스없이 컴파일하면 적용이 안되는데요, 위의 compile-time-weaver 방식이면 해결이 될 것도 같습니다만...
aop관련하여 잘 모르고 질문하려니 두서가 없네요.
추가로 혹시 maven 의 pom.xml 파일을 통해 서버에서 빌드시에 다른 프로젝트의 소스를 참조하여 빌드 할 수 있는 방법은 없을까요.(위의 해결책으로 생각해 본 것 입니다)
A
안녕하세요.. 박상한님..
AOP의 다음과 같은 3가지 방식으로 적용될 수 있습니다.
- 컴파일 시 엮기
- 클래스 로딩 시 엮기
- 런타임 시 엮기
이 중에서.. AspectJ와 같은 경우가 컴파일 시에 엮는 방식으로.. aj 확장자(java 확장자로 개발 가능) apsectj + java 형태로 개발을 하고.. aspectj compiler가 실제로 AOP가 적용된 소스로 pre compile된 후에.. 다시 class로 컴파일되는 방식입니다...
이 경우는 pre compiler를 기동해야 하는 불편함이 있습니다.
로딩 시 엮기는 class loader가 클래스를 로드하는 순간에.. AOP가 적용하는 형태로 .. AspectJ나 컴파일시 엮기와 함께 지원을 합니다..
문제는 class loader가 일반적은 jvm이 아닌 WAS에서 사용하는 경우는 해당 class loader를 aspectj가 지원하는 classloader로 사용하기 때문에.. 문제가 될 수 있습니다.
보다 자세한 내용은 다음 가이드나.. 인터넷 등의 자료를 참조하십시오..
http://www.egovframe.org/wiki/doku.php?id=egovframework:rte2:fdl:aop
iBatis 내부 api를 참조하는 경우라고 하신 부분은.. AOP 자체가 annotation을 사용하시더라도 대상이 되는 소스 상에 annotation을 추가해서 사용하시는 것이 아니라..
AOP 설정을 annotation 방식으로 소스로 추가하는 것이기 때문에.. 대상이 되는 iBatis 자체 소스를 수정하는 형태는 아닙니다..
추가로 질문해 주신 부분은.. 소스를 참조하는 방식이 어떤 방식을 말씀하시는 것인지 알려주셔야 확인이 가능할 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
AOP의 다음과 같은 3가지 방식으로 적용될 수 있습니다.
- 컴파일 시 엮기
- 클래스 로딩 시 엮기
- 런타임 시 엮기
이 중에서.. AspectJ와 같은 경우가 컴파일 시에 엮는 방식으로.. aj 확장자(java 확장자로 개발 가능) apsectj + java 형태로 개발을 하고.. aspectj compiler가 실제로 AOP가 적용된 소스로 pre compile된 후에.. 다시 class로 컴파일되는 방식입니다...
이 경우는 pre compiler를 기동해야 하는 불편함이 있습니다.
로딩 시 엮기는 class loader가 클래스를 로드하는 순간에.. AOP가 적용하는 형태로 .. AspectJ나 컴파일시 엮기와 함께 지원을 합니다..
문제는 class loader가 일반적은 jvm이 아닌 WAS에서 사용하는 경우는 해당 class loader를 aspectj가 지원하는 classloader로 사용하기 때문에.. 문제가 될 수 있습니다.
보다 자세한 내용은 다음 가이드나.. 인터넷 등의 자료를 참조하십시오..
http://www.egovframe.org/wiki/doku.php?id=egovframework:rte2:fdl:aop
iBatis 내부 api를 참조하는 경우라고 하신 부분은.. AOP 자체가 annotation을 사용하시더라도 대상이 되는 소스 상에 annotation을 추가해서 사용하시는 것이 아니라..
AOP 설정을 annotation 방식으로 소스로 추가하는 것이기 때문에.. 대상이 되는 iBatis 자체 소스를 수정하는 형태는 아닙니다..
추가로 질문해 주신 부분은.. 소스를 참조하는 방식이 어떤 방식을 말씀하시는 것인지 알려주셔야 확인이 가능할 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.