09 빈 스코프

p119 - src/test/java/spring/basic/scope/ScopeTest

public class ScopeTest {
    @Test
    void getBeanTest() {
        AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ProtoType.class);

        ProtoType bean1 = ac.getBean(ProtoType.class);
        ProtoType bean2 = ac.getBean(ProtoType.class);
        Assertions.assertThat(bean1).isNotSameAs(bean2);

        // 컨테이너 종료
        ac.close();

        bean1.destroy();
        bean2.destroy();
    }

    @Scope("prototype")
    @Component
    static class ProtoType {
        @PostConstruct
        void init(){
            System.out.println("ProtoType.init");
        }

        @PreDestroy
        void destroy() {
            System.out.println("ProtoType.destroy");
        }
    }
}

p122(왼쪽이미지) - build.gradle

p122(오른쪽이미지) - src/main/java/spring/basic/controller/RequestBean

p123(왼쪽이미지) - src/main/java/spring/basic/controller/RequestScopeController

p123(오른쪽이미지) - src/main/java/spring/basic/BasicApplication2

p126 - src/main/java/spring/basic/controller/RequestScopeController

p126 - src/main/java/spring/basic/controller/RequestScopeController

Last updated