본문 바로가기
개발언어/SPRING

[SPRING]GenericXmlApplicationContext란? 스프링 객체 생성 방법

by 코딩 시그널 2020. 3. 18.
반응형

오늘은 ApplicationContext.xml 스프링 설정 파일을 이용하여 객체를 생성하고, GenericXmlApplicationContext클래스를 이용하여 생성된 객체를 접근하여 사용하는 방법에 대해 알아보겠습니다. 이해를 쉽게 하기 위해 JAVA코드를 사용한 방식과 스프링 사용한 방식이 어떻게 다른지 간단한 예를 통해 비교해 보겠습니다. 

일단 Maven프로젝트를 생성해 주세요. Maven프로젝트 생성 방법은 아래의 링크에 있습니다.

 

[SPRING] Maven 프로젝트 생성 및 설정 방법

오늘은 eclipse를 이용하여 maven 프로젝트를 쉽게 생성하는 방법을 알려드리려고 합니다. 1. File -> New -> Maven Project 선택 또는 File -> New -> Other 선택 2 . 이 화면은 File -> New -> Other을 선택했..

junghn.tistory.com

JAVA에서 객체 생성 방식은 클래스에 객체를 만들어 놓고, 이 클래스를 NEW라는 키워드를 이용하여 생성자를 호출합니다. 이렇게 만들어진 객체는 참조 값을 이용하여 메서드나 그의 속성에 접근 가능하여 사용할 수 있습니다. 하지만 스프링에서는 이러한 로직을 스프링 설정 파일이라는 xml을 이용하여 스프링 컨테이너를 만들고, 더 효율적으로 객체를 생성할 수 있습니다.

 

다음은 예는 기존에 알고 있던 JAVA를 이용하여 객체를 생성하는 하는 방식입니다. 

Book이라는 클래스를 만들고 Book book = new Book(); 객체를 생성한 다음  book 참조값을 이용하여 객체를 사용 할 수 있게 됩니다. 

 

 

위의 예제를 스프링을 이용 어떻게 바뀌는지 확인해 보겠습니다.

src/main/resources 폴더에 applicationContext.xml 스프링 설정 파일을 만들고, 아래의 있는 네이스페이스 관련 설정 태그를 입력합니다. 그리고 bean 태그를 만들고 그 안에 id와 class를 설정합니다. id는 객체에 접근하기 위한 key값, class는 패키지명+클래스 네임으로 작성해 줍니다. GenericXmlApplicationContext 클래스는 이렇게 작성된 스프링 설정 파일을 읽어와 로딩이 시키고, 객체를 생성하며, 초기화하는 역할을 합니다. 또한 getBean 메소드를 이용하여 스프링 컨테이너에 생성된 객체에 접근 가능할 수 있게 됩니다.

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
 		http://www.springframework.org/schema/beans/spring-beans.xsd">
        
	<!-- bean definitions here -->
        <bean id="book" class= "lec1Java.Book"/>
        
</beans>

 

 

위의 두 예제를 통해 스프링 설정 파일을 이용하여 어떻게 객체가 생성되고 어떻게 접근 할 수 있는지를 알아봤습니다.

 

정리

 

BeanFactory interface : 객체 생성과 검색에 대한 기능 정의, getBean() 메서드가 정의되어 있음

ApplicationContext interface : 빈 객체의 생성, 초기화, 보관, 제거 등을 관리하며 스프링 컨테이너라고 표현함

GenericXmlApplicationContext class : XML 파일로부터 정보를 읽어와 객체를 생성하고 초기화 

 

 

댓글