본문 바로가기

Web/Spring

[Spring] IoC 컨테이너와 빈 ( IoC container, Bean )

※ 본 내용들은 인프런강좌 중 백기선님의 스프링 프레임워크 핵심 기술 강의 내용을 정리한 내용입니다. ※


IoC ( Inversion of Control ) 컨테이너

  • 의존 관계 주입( Dependency Injection ) 이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법
  • BeanFactory [ 최상위 인터페이스 ]
  • 애플리케이션 컴포넌트의 중앙 저장소.
  • 빈 설정 소스로 부터 빈 정의를 읽어들이고, 빈을 구성하고 제공한다.

Bean

  • Spring IoC 컨테이너가 관리하는 객체
  • Bean 으로 등록되어야 의존성 주입이 가능하다.
  • Bean 은 따로 설정을 하지 않으면 Default 값이 싱글톤 이다.
  • 스코프는 싱글톤, 프로토타입으로 나눌수있는데 기본값이 싱글톤 이기때문에 성능 향상에 도움이된다.
싱글톤 하나의 Bean 정의에 대해서 Spring IoC 컨테이너 내에 단 하나의 객체만 존재하는것
프로토타입 하나의 Bean 정의에 대해서 다수의 객체가 존재할 수 있음

 


예제 

  • 빈의 사용방법
public class Account {

    private Long id;

    }
}

- 위와 같은 클래스는 Bean 으로 사용이 불가하다.

 

@Transactional
public interface AccountRepository extends JpaRepository<Account, Long>{

    Account findByEmail(String email);

}

- 위와 같이 @Transactional 이라는 ( 또는 다른 ) 어노테이션이 사용된 클래스는 Bean 으로 사용이 가능하다.

'Web > Spring' 카테고리의 다른 글

[Spring] Thymeleaf 주 사용문법  (0) 2021.03.04
[JPA] Entity  (0) 2021.02.08
[Spring] ApplicationContext, 빈 설정 법  (0) 2021.01.16
[Spring] CSRF_란?  (0) 2020.12.08
[Spring] IoC Container, Bean (스프링 IoC 컨테이너와 빈)  (0) 2020.10.30