더북(TheBook)

예제 4-3에서는 enginedocumentDAO 빈에 prototype 값을 가진 scope 속성을 추가했다. 스프링 컨테이너는 애플리케이션 컨텍스트의 getBean 메서드가 호출될 때 이들 클래스의 새로운 인스턴스를 생성한다. 테스트를 다시 수행하면 다음과 같은 출력을 볼 수 있다.1

 

$ gradle -Dtest.simple=MyDocumentsTest test

:compileJava UP-TO-DATE

:processResources

:classes

:compileTestJava

:processTestResources UP-TO-DATE

:testClasses

:test

 

com.apress.isf.spring.test.MyDocumentsTest > testAll STARTED

2014-07-30 01:33:53,180 DEBUG [Test worker] SearchEngineService created: com.apress.isf.spring.service.SearchEngineService@2fa125b4

 

2014-07-30 01:33:53,228 DEBUG [Test worker] Document DAO set: com.apress.isf.spring.data.DocumentRepository@79ec9ca0

 

2014-07-30 01:33:53,228 DEBUG [Test worker] SearchEngineService created: com.apress.isf.spring.service.SearchEngineService@50cbf10a

 

2014-07-30 01:33:53,229 DEBUG [Test worker] Document DAO set: com.apress.isf.spring.data.DocumentRepository@4bbdfa8a

 

com.apress.isf.spring.test.MyDocumentsTest > testAll PASSED

 

BUILD SUCCESSFUL

 

Total time: 7.57 secs

 

출력 결과에서 볼 수 있듯이 engine을 얻으려고 getBean 메서드를 두 번 호출하며, 매번 새로운 인스턴스를 얻으므로 이제 서로 다른 인스턴스를 가진다. documentDAO 세터도 마찬가지다.

 

1 역주: 이 테스트를 수행하는 데 필요한 빌드 파일은 부록 소스 코드에서 찾을 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.