https://www.youtube.com/playlist?list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T
스프링 강의를 듣고 정리한 내용입니다
IoC 컨테이너 이용하기 – ApplicationContext
ApplicationContext
스프링에서 DI 지지서를 읽고 생성하는 객체이다
ApplicationContext 자체는 인터페이스이며,
이를 구현한 구현 객체 중 하나가 아래의 코드이다
ClassPathXmlApplicationContext("config.xml"); //xml이 실행될 위치를 적어넣는다
ApplicationContext의 종류
- ClassPathXmlApplicationContext : 어플리케이션의 경로를 지정할 때 사용한다
- FileSystemXmlApplicationContext : 파일 시스템의 경로를 이용한다
- XmlWebApplicationContext : 웹의 url을 통해 지정한다
- AnnotationConfigApplicationContext : 파일이 아닌 애노테이션을 이용할 때 사용한다
Promgram 클래스에 컨테이너 코드 추가
ApplicationContext context =
new ClassPathXmlApplicationContext("spring/di/setting.xml");
Spring을 import 하기 위한 설정
프로젝트를 Maven Project로 바꿔준다
프로젝트 우클릭 → Configure → Convert to Maven Project
▷ pom.xml 파일이 추가된다
라이브러리 추가
pom.xml 파일 하단의 Dependency 클릭 후 ADD를 누른다
springframework를 검색 후 Spring Context를 추가한다
IDE에서 검색할 때 뜨지 않는 경우
Show View > other > maven repositories를 연 후
Global Repositories > central 우클릭 > rebuild index를 눌러 인덱싱을 해야한다
필요한 dependency를 웹에서 검색하여 추가하는 방법
검색창에 Maven Repository를 검색 후
사이트에서 springframework 검색
→ Spring Context 클릭 → 필요한 버전 선택 후 복사
검색 및 필요한 버전 선택
코드 복사
복사된 코드를 pom.xml에 그대로 붙여넣은 후
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.context</artifactId>
<version>3.1.2.RELEASE</version>
<!-- 혹은 아래와 같이 버전을 설정할 수 있다 -->
<!-- <version>${org.springframework-version}</version> -->
</dependency>
</dependencies>
Maven → Reload Project를 해준다
Program 클래스 코드 수정
public class Program {
public static void main(String[] args) {
//컨테이너 생성
ApplicationContext context =
new ClassPathXmlApplicationContext("spring/di/setting.xml");
// ExamConsole console = (ExamConsole) context.getBean("console");
ExamConsole console = context.getBean(ExamConsole.class);
console.print();
}
}
IoC 컨테이너의 구체적인 이름이 context 객체라고 볼 수 있다
ExamConsole console = (ExamConsole) context.getBean(“console”);
→ 해당 코드는 형변환이 필요하다
형변환을 생략하기 위해 자료형의 이름으로 꺼내는 방식으로 변경하였다
ExamConsole console = context.getBean(ExamConsole.class);
'백엔드 > Spring' 카테고리의 다른 글
Spring - 생성자 DI | TIL_152 (0) | 2022.10.12 |
---|---|
Spring - 값 형식 DI | TIL_151 (0) | 2022.10.10 |
Spring - DI 지시서 작성(xml) | TIL_149 (0) | 2022.10.03 |
Spring - DI 실습 | TIL_148 (0) | 2022.09.30 |
Spring 이론 - DI, IoC | TIL_147 (0) | 2022.09.28 |