본문 바로가기

[Spring] xml을 기반으로 한 bean 설정하기(1)

인포꿀팁 발행일 : 2020-11-24

XML 기반 설정(XML Configuration)

  • <bean> 태그를 이용하여 빈을 설정한다.
  • Class파일들과 설정을 분리할 수 있고, 관심사의 분리 관점이 적용된다.
  • 간단한 설정 변경은 별도의 컴파일 없이 가능하다.
  • xml의 값들은 모두 String 형이기때문에 type safe하지 않다.(단점)

XML 설정하기

1) <Beans> 루트 엘리먼트

  • 스프링 xml 설정의 최상위 태그(루트 엘리먼트)
  • <beans> 엘리먼트 시작태그에 네임 스페이스를 비롯한 xml 스키마 관련정보 설정
  • 하위 엘리먼트
    • <bean> <description> <alias> <import>

2) <import> 엘리먼트

  • 분리하여 작성한 설정 파일들을 하나로 통합할때 사용하는 엘리먼트
  • 다국적 언어처리 예외처리 등을 기능별로 설정파일로 나누어 효율적으로 관리
  • 속성: resourse: 포함할 설정 파일
  • 예 : <import resourse="classpath:appContext.xml"/>

3)<bean> 엘리먼트

스프링 컨테이너에 빈을 정의한다.

주요 속성

id 빈 id 설정(유일해야함)
컨테이너로 부터 빈 객체를 요청할 때 사용
자바 식별자 작성 규칙을 따름
자바코드에서 getBean()으로 빈을 가져옴
주입 설정에서 ref 속성으로 빈을 참고하는 경우 사용
name id와 같은 기능을 하는 속성
자바 식별자 규칙을 따르지 않는 문자열도 가능(유일성)
class 빈으로 등록할 클래스 설정(필수)
패키지명을 포함한 클래스명을 지정한다.
scope 빈의 scope 설정(기본: singleton)
singleton : 스프링 ioc 컨테이너에 하나의 객체만 생성하여 빈 요청시 동일 객체 반환
prototype : 빈 요청시 새로운 객체 생성 반환
primary true를 지정하여 같은 타입의 빈이 여러가지일 경우 우선적으로 사용할 빈 설정
lazy-init true를 지정하여 빈을 사용시 객체가 생성되도록 설정
init-method 빈 객체가 생성될 때 호출할 메소드 설정
destroy-method 빈 객체가 소멸될 때 호출할 메소드 설정
autowire 의존 관계를 자동설정
byName, byType, constructor 중 하나의값

 

4)<bean>의 하위 엘리먼트

<constructor-arg> : 인자가 있는 생성자 생성시 인자에 값을 전달

<property> : setter을 이용하여 프로퍼티 설정시 set에 값을 넘겨준다.

댓글