스프링 XML 기본 설정

스프링 XML 설정

루트 엘리먼트

  • 스프링에 빈을 등록하기 위해 을 루트 엘리먼트로 사용하고 그안에 자식 엘리먼트들을 이용해야한다.

  • 자식 엘리먼트들로는 , , , 등이 있다.

엘리먼트

  • 스프링 설정에는 단순한 빈설정 이외에 트랜잭션 관리, 예외 처리, 다국어 관리 등이 있다.

  • 하나의 XML 설정파일에 모든 걸 설정하기에는 유지보수에 적합하지 않다.

  • 따라서 기능별이나 주제별 등으로 분리하여 관리하여 보관하는 것이 바람직하다.

  • 엘리먼트는 이렇게 분리된 설정 파일들을 불러와 통합할 때 사용된다.

  • 루트 설정 파일에서 엘리먼트를 사용하면, 마치 여러 설정 파일을 하나의 파일로 포함한 것으로 처리되는 느낌이다.

엘리먼트

  • 스프링 설정 파일에서 클래스를 빈으로 등록할 때 사용한다.

  • id와 class 속성을 이용할 수 있으며, class 속성은 필수값이다.

    • id 속성을 지정하지 않아도 빈으로 등록되는 것은 문제가 없지만, 빈에 대한 유일한 식별자가 없게된다.

    • id 속성이외에 name 속성이 있으며, 둘의 차이는 id 속성 값으로는 자바 식별자와 같은 규칙을 가지지만, name 속성에는 특별한 규칙이 없다는 것이다.

    • 하지만 둘다 유일한 값이어야 한다는 것은 일치하며, 왠만해서는 규칙에 따른 id값을 사용하는 것이 좋겠다.

  • 속성 정리

    1. init-method

      • 스프링 컨테이너는 빈을 등록하기 위해 객체를 생성할 때, 디폴트 생성자만 인식한다.

      • 따라서, 초기화 작업 등의 별도의 실행할 메소드가 필요하다면 지정할 수 있다.

    2. destroy-method

      • init-method와 마찬가지로, 스프링 컨테이너가 빈을 삭제할 때 호출하는 메소드를 지정할 수 있다.
    3. lazy-init

      • ApplicationContext 컨테이너를 이용하는 경우에는 구동하는 시점에서 즉시 빈등록이 된다고 했는데, 해당 속성을 통해 lazy-loading을 지정할 수 있다.
    4. scope

      • 스프링 컨테이너가 생성한 빈을 싱글톤으로 사용할 지, 프로토타입으로 사용할지 등을 지정할 수 있다.

      • 기본값은 싱글톤이며, 프로토타입으로 지정할 경우 생성되는 빈들은 각기 다른 주소를 가진다.

댓글