2009-04-08 5 views
3

나는 건설 시간에 객체 위에 AOP를 수행하려고하는데 IConstructorInterceptor를 찾았는데, 이는 내가 원하는 바에는 완벽하지만 doesn't appear to work (버전 1.2 이상). Spring.NET 및 생성자 인터셉터

나는 또한 IObjectPostProcessor & IInstantiationAwareObjectPostProcessor 모두 검토 한 결과,하지만 난 건설시기에 개체에 대한 처리를 할 수있는 방법을 찾을 수 없습니다 ... IInstantiationAwareObjectPostProcessor에 PostProcessPropertyValues ​​방법은 가까운,하지만 그것은 단지 통과 setter 주입 속성을 통해 생성자 arg 값 ...

특히 내가 원하는 것은 인스턴스 생성 직후 객체에 대한 참조와 동시에 생성자에 주입 된 객체에 대한 참조입니다. 이를 수행 할 방법이 없습니까? 아니면 그냥 설정 기 주입 & 포스트 프로세서 또는 MethodInterceptor를 사용하여 전환하는 최선의 방법은 무엇입니까?

+0

혹시이 기능을 사용하셨습니까? – DevelopingChris

+1

아니요. 불행히도이 기능은 현재 버전이나 1.3 버전에서 제공되지 않으며 위에 언급 한 것보다 나은 해결책을 찾지 못했습니다. – Alconja

+0

관련 : http://stackoverflow.com/questions/4106701/inheritancebasedaopconfigurer-using-runtime-constructor-arguments – Marijn

답변

0

AOP는 의존성 삽입이 아닌 통화 차단을 제안합니다. Spring.Net을 사용하면 seters 또는 생성자를 사용하여 종속성 삽입을 수행 할 수 있습니다. 귀하의 게시물 및 의견을 위해, 그것은 일을하기로되어 있습니다.

Spring.Net 초기화 파이프 라인에서 먼저 종속성 그래프를 분석하고 개체 생성을 수행하고 모든 종속성을 설정합니다. 그 후 클래스가 "Spring.Objects.Factory.IInitializingObject"를 구현하면 "void AfterPropertiesSet();"메서드가 호출됩니다. 호출됩니다. 수행하는 다른 방법은 객체 구성을 사용하는 것이며, 객체 노드에 init-method를 설정할 수 있습니다. 이 동작은 IoC/DI 개념을 기반으로합니다.

어쩌면 특정 팩토리 객체를 만들어야 할 수도 있습니다. 이 작업을 수행하려면 공장에서 Spring.Objects.Factory.IFactoryObject 인터페이스를 구현해야합니다. 이렇게하면 컨테이너가 객체 생성을 위임 할 수 있습니다 (이 구성의 특성 및 생성자는 공장 용입니다).

최고 감사합니다