본문 바로가기

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

(7)
3.2.3. 인스턴스 팩토리 메서드를 사용하여 인스턴스화 하기 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-class-instance-factory-method static 팩토리 메서드와 유사하게, 인스턴스 팩토리 메서드를 통해 인스턴스화를 할때는 컨테이너에 존재하는 bean의 non-static 메서드를 호출한다. 이 메커니즘을 사용하려면, 인스턴스 메소드를 호출하여 생성될 bean들의 'class' 속성을 비워둬라. 그리고 'factory-bean' 속성에 인스턴스 메소드를 포함하고있는 bean(조상 컨테이너에 있어도 됨)의 이름을 적어라. 그리고 'factory-method' 속성에는 팩토리 메서드의 이름을 적어..
3.2.2. static 팩토리 메서드로 인스턴스화 하기 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-class-static-factory-method static 팩토리 메서드를 통해서 bean을 정의하려면, 'class' 속성을 통해 static 팩토리 메서드를 포함하는 클래스를 특정하면 된다. 그리고 'factory-method' 속성을 통해서 팩토리 메서드 자체의 이름을 특정한다. 그러면 이 메서드를 호출할 수 있게 되고(선택적 인자들과 함께) 그에 따라 객체를 반환받을 수 있다. 그리고 결과적으로 그 객체는 마치 생성자를 통해 생성된 것처럼 취급될 것이다. 이런 식으로 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 컨테이너는 여러분이 관리하기를 원하는 어떤 클래스도 가상적으로 관리할 수 있도록 해준다. 그것은 진정한 자바빈들만을 관리하는..
3.2. Bean 인스턴스화 하기 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-class 'bean 정의'는 본질적으로 하나 이상의 객체들을 만들어내기 위한 레시피이다. 컨테이너는 요청을 받으면 이름이 붙여진 bean의 레시피를 찾아보고, 실제 객체를 만들어내기 위해 bean의 정의에 캡슐화되어 있는 설정 메타데이터를 사용한다. 만약 XML 기반의 설정 메타데이터를 사용한다면, 요소의 class 속성에 인스턴스화되어야할 타입(또는 클래스)을 특정할 것이다. 이 class 속성은 보통 의무다. (예외로, '인스턴스 팩토리 메서드'와 'Bean 정의 상속'을 사용하여 인스턴스화하기가 있다). C..
3.1.1. Bean 정의 외부의 Bean에게 alias 붙이기 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-beanname-alias bean 정의에서는, 하나의 id와 여러 개 name들의 조합을 통해서 bean에게 하나 이상의 이름을 제공할 수 있다. 이 이름들은 해당 bean에 대한 alias와 동등하다. 그리고 이는 컴포넌트가 bean 이름을 통해 의존성을 이용할 수 있게 하는 등의 몇몇 경우에는 유용하다. 그러나, bean이 실제로 정의되는 곳에서 alias를 설정하는 것이 언제나 적절한 것은 아니다. 때때로는 다른 곳에서 정의된 bean에 대한 alias를 소개하는 것이 바람직할 때가 있다. 이는 특히 설정이 각각의 서브시..
3.1. Bean에 이름 붙이기 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-beanname 모든 bean은 하나 이상의 식별자를 가지고 있다. 이 식별자들은 bean을 관리하는 컨테이너 안에서 유일해야만 한다. 보통 bean은 하나의 식별자를 가진다. 하지만 하나 이상이 필요하다면, 여분의 것들은 alias로서 고려될 수 있다. XML 기반의 설정 메타데이터에서는, bean 식별자를 특정하기 위해 'id' 속성과 'name' 속성 또는 둘 다를 사용한다. 'id' 속성은 하나의 id로만 특정할 수 있다. 관습적으로 이런 이름들은 '알파벳+숫자' 조합으로 이루어진다. 하지만 특수문자 역시 포함될 수 있다..
3. Bean Overview 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-definition 스프링 IoC 컨테이너는 하나 이상의 bean을 관리한다. 이 bean들은 여러분들이 컨테이너에게 제공한 설정 메타데이터를 통해 생성된 것이다. (예를 들어, XML의 정의들을 통해) 컨테이너 스스로에게는 이러한 bean들이 'BeanDefinition' 객체로 나타난다. 그리고 그 객체들은 다음의 메타데이터를 포함하고 있다. package-qualified 클래스 이름: bean이 정의될 때 실제 실행되는 클래스 bean이 컨테이너 안에서 어떤 행동을 해야하는지 설명하는, bean의 행동 설정 요소들(sco..