applicationContext.xml

dev_joo·2025년 8월 20일

Spring 노트 필기

목록 보기
4/10

스프링 컨테이너 설정파일 (applicationContext.xml) 파일 요소와 속성 정리

<beans>

<import>

bean등록 기능 외의 트랜잭션 관리, 예외처리, 다국어 처리 등 여러 기능을 여러 XML 파일로 나누어 설정하는 방식에서 파일을 하나로 통합 할 때 사용하는 엘리먼트

예시)
DataSource 관련 설정.xml --> applicationContext.xml <-- contextTransaction관련 설정.xml

<bean>

1. id

클라이언트의 bean객체 요청을 위해 이름을 지정하는 속성
스프링 컨테이너가 생성한 개체들 사이에서 유일해야 한다.
자바 네이밍 컨벤션을 따른다.

2. class (필수)

bean객체로 등록할 클래스의 경로

3. name

자바 식별자 작성 규칙을 따르지 않는 문자열을 포함할 수 있는 식별자로 id 속성 대신 쓰일 때가 있다.

4. init-method

객체 생성 시 멤버변수를 초기화하기 위한 메소드를 지정
init-method 속성에 작성된 메소드가 없다면 스프링 컨테이너는 설정파일에 등록된 클래스의 객체를 생성할 때 디폴트 생성자를 호출한다.

5. destroy-method

컨테이너로 인해 객체가 삭제되기 직전에 호출된 메소드 지정

6. lazy-init

ApplicationContext를 사용헤 컨테이너를 구동할 땐 구동되는 시점에 스프링 파일에 등록된 <bean>들을 생성하는 즉시 로딩(pre-loading)방식으로 동작한다.

그러나 너무 자주 사용되지 않으면서도 메모리를 크게 차지해 시스템에 부담을 주는 경우 이를 방지하기 위해 해당 <bean>이 사용되는 시점에 객체를 생성하는 init-lazy 속성을 사용한다.

lazy-init=true 로 설정된 스프링컨테이너는 해당 bean을 미리 생성하지 않고 클라이언트가 요청하는 시점에 생성하여 메모리를 더욱 효율적으로 관리할 수 있게 한다.

7. scope

scope 속성으로 컨테이너가 생성한 bean을 어느 범위에서 사용할 수 있는지 지정할 수 있다.

scope 속성의 기본값은 "singeton"으로 일일이 클래스에 Singleton 패턴관련 코드를 작성하지 않아도 스프링 컨테이너가 자동으로 싱글톤 객체로 생성하도록 한다.

scope="prototype"으로 지정할 경우 해당 bean이 요청될 때마다 매번 새로운 객체를 생성하여 반환한다.

<constructor-arg>

1. ref

생성자 매개변수로 으로 등록된 다른 객체를 전달할 때 해당 객체의 아이디 또는 이름

2. value

생성자 매개변수로 고정된 문자열이나 정수같은 기본형 데이터를 전달할 때 데이터 값

3. index

생성자가 여러 개 오버로딩 되어있을 때 어떤 값이 몇 번째 매개변수인지 명시하는 인덱스

profile
풀스택 연습생. 끈기있는 삽질로 무대에서 화려하게 데뷔할 예정 ❤️🔥

0개의 댓글