IoC를 설명하기 앞서 컨테이너의 개념을 알고 가야합니다.
컨테이너란 객체의 생명주기를 관리하고, 객체에게 기능을 제공하는 역활을 합니다. 기존 개발자들은 new라는 키워드를 이용하여 객체를 생성했죠. 그리고 인터페이스를 호출하는등 객체를 생성하고 소멸시켰는데, 이것을 컨테이너가 대신해줍니다.
컨테이너에서 관리할 객체를 위한 별도 파일이 존재합니다.
지난 스프링 기초를 할때 잠시 다뤘던 servlet컨테이너는 web.xml을 가진다고 했죠.
마찬가지로 스프링 컨테이너가 사용할 xml을 만들어 봅시다.
프로젝트->src->main->resources경로로 가셔서 new -> Other를 눌러줍니다.
그후 spring -> Spring Bean Configuration File을 눌러줍니다.
파일명은 applicationContext를 입력해줍니다.
그럼 위와 같은 화면이 나오게 됩니다.
제대로 만들어졌는지 테스트를 해보려 합니다.
우리는 앞에서 SamsungTV클래스를 스프링 설정 파일에 등록하려 합니다.
등록을 할때는 <Bean>이라는 엘리먼트를 사용할건데, 클래스 하나당 하나의 <Bean>이 필요합니다.
6번째 라인을 보면 하나 추가 된것이 보이시죠?
빈을 등록을 했으니 main을 수정해보겠습니다.(TVUser)
기다란게 하나 생겼네요! 한번 알아보고 가겠습니다.
우리는 applicationContext를 작성했습니다. applicationContext.xml파일을 불러와 스프링 컨테이너중 하나인
GenericXmlApplicationContext를 구동한것 입니다.
그리고 SamsungTV객체를 얻어내기 위해 이름이 tv인객체를 getBean()메소드를 이용해 요청했습니다.
어떠셨나요?
우리가 알아야 할것은 이전과 이어집니다. 우리는 Samsung에서 Lg로 바꾸기 위해 xml파일만 수정 하면 됩니다.
즉 디자인패턴인 BeanFactory를 썼을때 보다 간편해 졌습니다.
'JavaScript > Spring' 카테고리의 다른 글
[Spring framework] 스프링 의존성과 DI(DL 과 DI차이) (0) | 2022.01.26 |
---|---|
[Spring framework] 스프링 의존성과 DI (0) | 2022.01.26 |
[Spring]스프링 prefix & suffix 를 이용하여 view페이지 지정하기 (0) | 2022.01.25 |
[spring framework] spring 신입 웹 개발자 면접 질문 모음(스프링 면접 질문) (0) | 2022.01.24 |
[이클립스 spring 오류 해결 방법] spring 이클립스 서버 구동시 오류 sqlmap </sqlmap> (0) | 2022.01.22 |