2013-02-27 2 views
0

나는 다음과 같은 클래스가 있습니다. 불행하게도 생성자의 코드가 실행 된 후 myAnotherClass 직접 생성자에서 내가태피스트리 IOC의 생성자 및 사출

... null에 대한 작업을 수행하고 나는 물론 그것을 고전적인 방법 (MyAnotherClass myAnotherClass = new MyAnotherClass()를) 인스턴스화 할 수 즉, 주입, 그러나 나는 생각하지 않는다 이 상황에서해야 할 일.

이 문제를 해결하기 위해 어떤 해결책을 제안 하시겠습니까?

답변

7

최선의 선택 :

public class MyClass { 
    private final MyAnotherClass myAnotherClass; 

    public MyClass(MyAnotherClass other) { 
    this.myAnotherClass = other; 
    // And so forth 
    } 
} 

T5-IOC의이 '새로운'할 필요가 MyClass까지 자신이 없다, 그래서 다음 생성자 주입을 사용합니다. 자세한 내용은 Defining Tapestry IOC Services을 참조하십시오. 또한

:

public class MyClass { 
    @Inject 
    private MyAnotherClass myAnotherClass; 

    @PostInjection 
    public void setupUsingOther() { 
    // Called last, after fields are injected 
    } 
}