본문 바로가기

SpringFramework Core - I. IoC 컨테이너/3. Bean 개관

3.2.1. 생성자로 인스턴스화 하기

원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-class-ctor

 

 

 생성자 방식으로 bean을 생성할 때는, 모든 일반적인 클래스들을 사용할 수 있고 스프링과도 양립이 가능하다. 즉, 클래스들은 특정 인터페이스를 구현할 필요도 없고 특정한 방식으로 코딩되어 있을 필요도 없다. 단순히 bean 클래스를 특정하는 것만으로도 충분하다. 그러나 특정 bean이 어떤 종류의 IoC에 의존하냐에 따라서 기본 생성자가 필요할 수도 있다.

 

스프링 IoC 컨테이너는 여러분이 관리하기를 원하는 어떤 클래스도 가상적으로 관리할 수 있도록 해준다. 그것은 진정한 자바빈들만을 관리하는 것에 그치지 않는다. 많은 스프링 유저들은 기본적인 생성자만 갖추고 있으며 컨테이너에서 프로퍼티를 통해 적절히 setter와 getter로 모델링된 실질적인 자바빈을 선호한다. 또한 컨테이너는 외부의 non-bean-style의 클래스들을 추가로 가지고 있을 수 있다. 예를 들어, 만약에 자바빈과는 호환되지 않는 레거시 connection pool을 사용해야 한다면 스프링이 역시 해결해줄 것이다.

 

XML 기반의 설정 메타데이터에서는 다음과 같이 bean 클래스를 특정할 수 있다.

<bean id="exampleBean" class="examples.ExampleBean" />

<bean name="anotherExample" class="examples.ExampleBeanTwo" />

생성자에 인자를 제공하거나 객체가 생성된 이후 인스턴스에 프로퍼티를 세팅하는 메커니즘에 대해 자세히 알고 싶다면, 의존성 주입을 참고하라.