헬퍼 구성 요소가 여러 클래스에 사용되었습니다. 이것은 일반적인 시나리오입니다 :정적 속성 주입 구성 모범 사례
public class HelperComponent
{
public void HelperMethod()
{
// do something
}
}
public class MyClass
{
private static HelperComponent Helper{ get; set;}
public void Method1()
{
Helper.HelperMethod();
}
}
사용 : new MyClass().Method1();
나는이 구성 spring.net 구성/솔루션을 권장 무엇인지 알고 싶습니다?
ContextRegistry.GetContext().GetObject("HelperComponentName")
그럼 I이 바람직 용액 아니라고 읽고 I 스프링 투명 컴포넌트 사용하도록 의존성을 회피하기 위해 주사를 사용해야 : 처음에 I 헬퍼 요소를 페치하기 위해이 라인을 사용했다.
내 질문은 : 스프링 구성을 사용하여 어떻게 이것을 할 수 있습니까?
클래스에 정적 속성을 삽입 할 수 있습니까? 아니면 도우미 인스턴스 속성을 만들어야합니까? Helper를 인스턴스 속성으로 변환하면 Spring 구성에서 MyClass를 정의하고 CreateObject를 사용하여 MyClass를 인스턴스화해야합니까?
그렇다면 위와 같이 MyClass를 인스턴스화하고 싶습니다.
도움을 주시면 감사하겠습니다.
저는 스프링에 익숙하지 않지만, (생성자 또는 속성을 통해) 의존성을 주입하고, 비 정적으로 만들고, IOC 컨테이너를 통해 라이프 사이클을 관리합니다. Spring은 HelperComponent의 수명주기를 Singleton으로 설정하는 방법을 가져야합니다. –
@dtryon 이미 (context.GetObject())를 사용하여 검색 했으므로 이미 완료했습니다. 하지만 Helper를 non.static으로 설정하면 어떻게 MyClass를 인스턴스화 할 수 있습니까? 내가 말했듯이 컨텍스트를 사용하고 싶지 않습니다. CreateObject. – Filip
일반적으로 이렇게하는 방법은 HelperComponent를 매개 변수로 사용하여 동일한 유형의 로컬 필드를 설정하는 MyClass의 생성자를 사용하는 것입니다. 그런 다음 두 클래스를 컨테이너에 등록합니다. 그런 다음 컨테이너에서 MyClass를 해결하면 Spring은 HelperComponent를 자동으로 인스턴스화합니다. 이런 식으로 Spring은 의존성의 라이프 사이클을 관리 할 것입니다. –