스프링 컨테이너가 관리할 빈 객체를 생성하기 위해서는 설정파일에 <bean>태그를 사용하며 id(혹은 name)속성을 이용하여 해당 빈 객체의 식별 값을 지어준다.
이 식별 값을 getBean( )메소드를 이용하여 컨테이너로부터 객체를 가져와 사용하면 된다.

ExamDao.java


exam02.xml


ExamMain.java


결과


<bean> 태그의 id값을 'examDao'로 작성했으므로 getBean("examDao")를 이용하여 해당 빈을 가져와 사용한다.
주의할 점은 <bean> 태그에 생성자와 관련된 정보(<constructor-arg>태그)를 명시하지 않았을 경우 스프링은 파라미터가 없는 기본 생성자를 이용하여 객체를 생성한다. 하지만 위의 코드처럼 매개변수가 있는 생성자를 정의했다면 매개변수가 없는 기본 생성자도 같이 작성을 해줘야 한다. (ExamDao.class의 6번 라인)

스프링 프레임워크뿐만 아니라 일반적인 코딩중에도 기본생성자는 의식적으로라도 작성해 주는게 좋다고 생각한다.


======================================================================================================


스프링은 빈을 생성할 때 특별한 설정이 없으면 기본생성자를 이용하여 객체를 생성한다.
만약 가장 많이? 사용하는 패턴인 싱글턴 패턴의 class의 경우처럼 생성자에 접근을 할 수 없을 경우에는 설정파일의 <bean> 태그에 factory-method 속성 값으로 static 메소드를 지정함으로써 빈을 생성하도록 설정한다.

ExamTest.java


ExamMain.java


exam01.xml


결과


위의 소스처럼 싱글턴 패턴일 경우에는 설정파일에서 <bean>태그에 factory-method 속성 값을 이용한다.


======================================================================================================


스프링이 설정파일을 정상적으로 로드하여 빈을 생성할 경우 아래와 같은 정보를 확인할 수 있다.

박스표시 부분을 잘보면 설정파일(xml)에서 <bean>태그를 통해 생성한 id(혹은 name)명이 나오는데 이는 스프링 컨테이너가 해당 id의 이름으로 빈을 생성했다는 정보이다.
설정파일에 여러개의 bean을 설정했다면 한개가 아닌 개발자가 설정한 모든 bean 정보를 볼 수 있다.

+ Recent posts