백엔드/Spring

Spring - IoC 컨테이너(ApplicationContext) | TIL_150

ran4 2022. 10. 6. 14:53

https://www.youtube.com/playlist?list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T

스프링 강의를 듣고 정리한 내용입니다

 

 


 

IoC 컨테이너 이용하기 – ApplicationContext

ApplicationContext

스프링에서 DI 지지서를 읽고 생성하는 객체이다

 

ApplicationContext 자체는 인터페이스이며,

이를 구현한 구현 객체 중 하나가 아래의 코드이다 

ClassPathXmlApplicationContext("config.xml"); //xml이 실행될 위치를 적어넣는다

 

 

 

ApplicationContext의 종류

 

  1. ClassPathXmlApplicationContext : 어플리케이션의 경로를 지정할 때 사용한다
  2. FileSystemXmlApplicationContext : 파일 시스템의 경로를 이용한다
  3. XmlWebApplicationContext : 웹의 url을 통해 지정한다
  4. 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