반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. 빈(Bean)

- 스프링(Spring)이 IoC(Inversion of Control) 방식으로 관리하는 오브젝트

- 스프링(Spring)이 직접 그 생성과 제어를 담당하는 오브젠트

- XML 파일에서 정의

 

2. 빈(Bean)의 주요 속성

- class : 정규화된 자바 클래스의 이름

- id : 빈(Bean)의 고유 식별자

- scope : 객체의 범위(singleton과 prototype)

- property : 생성시 bean setter에 전달할 인수 -> setter가 없으면 에러 발생

<bean id="gbDao" class="com.ssafy.model.dao.GuestBookDaoImpl">
		<property name="dataSource" ref="ds"/>
</bean>
<!-- com.ssafy.model.dao.GuestBookDaoImpl 클래스 객체를 gbDao이름으로생성
	dataSource 에 ds 객체 참조 -->

 

3. 빈팩토리(BeanFactory)

- 스프링(Spring)이 IoC(Inversion of Control)를 담당하는 핵심 컨테이너

- 빈(Bean)을 등록, 생성, 조회, 반환하는 기능을 담당.

- 일반적으로 빈 팩토리(BeanFactory)를 바로 사용하지 않고 이를 확장한 ApplicationContext를 이용

 

4. 애플리케이션 컨텍스트(ApplicationContext)

- 빈팩토리(BeanFactory)를 확장한 IoC(Inversion of Control) 컨테이너

- 빈(Bean)을 등록, 생성, 조회, 반환하는 기능을 담당.

- 스프링(Spring)의 부가 서비스 사용

- 스프링(Spring)이 제공하는 애플리케이션 기능을 모두 포함

 

5. 빈(Bean) 생성범위

1) 싱글톤 빈(Singleton Bean)

- 기본적으로, 빈(Bean)은 싱글톤(Singleton)으로 생성

- 생성된 인스턴스는 single beans cache에 저장되어 요청과 참조가 있으면 캐시에 저장된 객체를 반환

- 컨테이너가 제공하는 모든 빈(Bean)의 인스턴스는 항상 동일

- 컨테이너가 항상 새로운 인스턴스를 반환하고 싶으면 scope를 prototype으로 설정

Scope Description
singleton 하나의 빈(Bean) 정의에 대해 Spring IoC Contatiner 내에 단 하나의 객체만 존재
컨테이너가 사라질 때 빈(Bean)도 삭제
prototype 하나의 빈(Bean) 정의에 대해 다수의 객체가 존재
request 하나의 빈(Bean) 정의에 대해 하나의 HTTP request의 생명주기 안에 단 하나의 객체만 존재
각각의 HTTP request는 자신만의 객체를 가짐
Web-aware Spring ApplicationContext 안에서만 유효
session 하나의 빈(Bean) 정의에 대해 하나의 HTTP Session의 생명주기 안에 단 하나의 객체만 존재
Web-aware Spring ApplicationContext 안에서만 유효
global session 하나의 빈(Bean) 정의에 대해 하나의 Global Session의 생명주기 안에 단 하나의 객체만 존재
portlet context 안에서 유효
Web-aware Spring ApplicationContext 안에서만 유효

 

2) Prototype

- 모든 요청에서 새로운 객체를 생성

- 정상적인 방식으로 빈(Bean) 제거

 

6. getBean()

- getBean() 메서드를 통해 빈(Bean) 객체를 가져올 수 있다.

GuestBookService guestBookService = context.getBean("gbService", GuestBookServiceImpl.class);

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기