<beans><import>bean등록 기능 외의 트랜잭션 관리, 예외처리, 다국어 처리 등 여러 기능을 여러 XML 파일로 나누어 설정하는 방식에서 파일을 하나로 통합 할 때 사용하는 엘리먼트
예시)
DataSource 관련 설정.xml --> applicationContext.xml <-- contextTransaction관련 설정.xml
<bean>클라이언트의 bean객체 요청을 위해 이름을 지정하는 속성
스프링 컨테이너가 생성한 개체들 사이에서 유일해야 한다.
자바 네이밍 컨벤션을 따른다.
bean객체로 등록할 클래스의 경로
자바 식별자 작성 규칙을 따르지 않는 문자열을 포함할 수 있는 식별자로 id 속성 대신 쓰일 때가 있다.
객체 생성 시 멤버변수를 초기화하기 위한 메소드를 지정
init-method 속성에 작성된 메소드가 없다면 스프링 컨테이너는 설정파일에 등록된 클래스의 객체를 생성할 때 디폴트 생성자를 호출한다.
컨테이너로 인해 객체가 삭제되기 직전에 호출된 메소드 지정
ApplicationContext를 사용헤 컨테이너를 구동할 땐 구동되는 시점에 스프링 파일에 등록된 <bean>들을 생성하는 즉시 로딩(pre-loading)방식으로 동작한다.
그러나 너무 자주 사용되지 않으면서도 메모리를 크게 차지해 시스템에 부담을 주는 경우 이를 방지하기 위해 해당 <bean>이 사용되는 시점에 객체를 생성하는 init-lazy 속성을 사용한다.
lazy-init=true 로 설정된 스프링컨테이너는 해당 bean을 미리 생성하지 않고 클라이언트가 요청하는 시점에 생성하여 메모리를 더욱 효율적으로 관리할 수 있게 한다.
scope 속성으로 컨테이너가 생성한 bean을 어느 범위에서 사용할 수 있는지 지정할 수 있다.
scope 속성의 기본값은 "singeton"으로 일일이 클래스에 Singleton 패턴관련 코드를 작성하지 않아도 스프링 컨테이너가 자동으로 싱글톤 객체로 생성하도록 한다.
scope="prototype"으로 지정할 경우 해당 bean이 요청될 때마다 매번 새로운 객체를 생성하여 반환한다.
<constructor-arg>생성자 매개변수로 으로 등록된 다른 객체를 전달할 때 해당 객체의 아이디 또는 이름
생성자 매개변수로 고정된 문자열이나 정수같은 기본형 데이터를 전달할 때 데이터 값
생성자가 여러 개 오버로딩 되어있을 때 어떤 값이 몇 번째 매개변수인지 명시하는 인덱스