2012-07-03 2 views
1

현재 일부 프로젝트는 AOP 프로그래밍에 적합한 OSGi 프로젝트에서 작업 중이다. OSGi와 결합 된 AOP의 많은 경험없이 OSGi 환경에서 AOP를 가장 효과적으로 수행하는 방법을 알고 싶습니다. 이 문제에 대한 기사를 읽었지만 나에게 적합한 솔루션을 찾지 못했습니다. 예를 들어, AspectJ를위한 Equinox Incubator 프로젝트가 있지만, 마지막 빌드는 2008 년이었습니다.하지만 Apache Felix와 Bnd (도구)를 사용하고 있기 때문에 Equinox에서 무언가를 사용하지 않으려합니다. Btw., 짜기 과정에 대한 하나의 요구 사항은 컴파일 시간에 있어야하고 나중에로드 시간이어야한다는 것입니다. 또한 Ant와 Bnd를 사용하여 번들을 만듭니다. 따라서 Aspectj를이 빌드 프로세스에도 통합 할 수 있다면 좋을 것입니다.Apache Felix로 OSGi에서 AOP를 구현하는 방법

누군가가 이러한 사용 사례를 경험에 공유 할 수 있기를 바랍니다. 지금까지

편집

요약 :

  • 기독교 슈나이더는 그의 대답에 언급 된 (그러나 pityful 내가 찾고 있어요되지 것)로
을 스프링 AOP를 사용할 수있는 가능성이 있습니다

답변

1

나는 Aries JPA를 볼 수 있다고 생각합니다. 최근로드 시간 짜기가 추가되었습니다. 새로운 OSGi 스펙에 직조 고리가있는 것처럼 보입니다. 따라서 AspectJ 등의 지원은 현재 가능할 수있다. 나는 아직 그것을 실제로 보지 못했다.

큰 질문은 물론입니다. 왜 AOP가 필요하며 무엇을하고 싶습니까? 일반적으로 대부분의 경우 AOP는 그보다 더 단순 해 보입니다. 처음에는 생각보다 많은 이익을줍니다. 그래서 내 충고는 신중해야하고 AOP를 너무 많이 사용하기 전에 두 번 생각해야한다.

+0

안녕하세요. 귀하의 회신에 대한 Thx. 필자의 의견으로는 Aries는 데이터 소스로 작업하는 JPA 사용 사례에 더 적합합니다. 하지만 솔직히 말해서 그것은 다른 문제를 해결할 수 있습니다. 그럼에도 불구하고 언급 할 필요는 없습니다.) AOP에 대해서 : 내가 사용하고자하는 한 가지 경우는 많은 표준 로깅 프로세스가 될 것입니다. 또한 일부 보안 문제는 완벽하게 일치합니다. 물론 aspect를 사용하지 않고도 문제를 해결할 수 있지만 중복/잘못된 코드는 피하는 것이 좋습니다. 하지만 당신 말이 맞아요, 나는 AOP을 과용하지 않도록 조심해야 해. –

+0

쉽게 제어가 불가능 해지므로 전체 AOP를 사용하지 말 것을 강력히 권장합니다. 아주 잘 작동하는 것은 인터페이스를 사용하여 주입되는 클래스에 대해 aspect를 사용하는 것이다. 이 경우 바이트 코드 조작 대신 동적 프록시를 사용할 수 있습니다. 예를 들어 Spring은 인터페이스 경계에서 보안, 로깅 및 트랜잭션을 수행 할 수 있습니다. 이것은 OSGi에서도 매우 잘 작동합니다. 나는 개인적으로 그 이상을 사용할 필요가 없었다. 유일한 예외는 jpa이지만 이러한 경우에는 전문화 된 라이브러리가 있습니다. –

+0

자세한 설명을위한 링크를 제공해 주시겠습니까? –

관련 문제