2009. 9. 30. 15:19
Spirng.NET의 IoC 컨테이너에서 객체의 생명주기에 대해서 알아보도록 하겠습니다. 먼저 IoC는 이제까지 new라는 연산자를 사용해서
객체를 생성해주던 것을 환경설정 파일에서 객체에 대한 설정을 해주고 프로그램에서 그 객체를 사용하는 것을 의미합니다. 환경설정 파일에서 객체를
생성해 줄 때 윈폼에서는 두 가지 방법이 있습니다. 바로 singleton과 prototype입니다. 아래는 두 가지 방식입니다. 디폴트로
singleton=true입니다.
설정 파일에서 설정한 객체를 사용하기 위해서는 아래와 같이 사용합니다.
=> IoC컨테이너를 불러와서 그
중에서 아이디가 "car"인 객체를 가져와서 그 객체의 고유한 값인 해쉬코드 값을 출력창에 보여줍니다. 이전에는 무조건 인터페이스 사용해야되는
줄 알았는데 그렇지 않는 것을 알 수 있었습니다. 그리고 여기서 singleton 방식은 해쉬코드값이 당연히 계속 같은 값을 찍을 것이고
prototype방식은 해쉬코드값이 계속 바뀔 것입니다.
다음 포스트에서는 여기에 DI기능을 추가하고 아키텍처에 Spring.NET를 사용할 경우에 객체의 생명주기를 어떤 방식으로 해야 더 효율적인가에 대해서 알아보도록 하겠습니다~
<object id="car" type="ObjectLifeCycle.Car, ObjectLifeCycle" singleton="true"/> <object id="car" type="ObjectLifeCycle.Car,
ObjectLifeCycle" singleton="false"/> |
설정 파일에서 설정한 객체를 사용하기 위해서는 아래와 같이 사용합니다.
IApplicationContext ctx = ContextRegistry.GetContext(); Car car = ctx["car"] as Car; Debug.WriteLine(car.GetHashCode().ToString()); |
다음 포스트에서는 여기에 DI기능을 추가하고 아키텍처에 Spring.NET를 사용할 경우에 객체의 생명주기를 어떤 방식으로 해야 더 효율적인가에 대해서 알아보도록 하겠습니다~
'GET > FrameWork' 카테고리의 다른 글
방랑이가 생각하는 Spring.NET... (0) | 2009.10.06 |
---|---|
Spring.NET - 레퍼런스 문서 한글화 사이트.. (0) | 2009.09.30 |
객체의 생명주기 (0) | 2009.09.30 |
Spring 컨테이너와 아키텍처 구성 (0) | 2009.09.30 |
Hands-on Labs for EL 4.1 and Unity 1.2 (0) | 2009.09.29 |