[Spring] Spring Bean

Kyungmin·2023년 10월 7일
0

Spring

목록 보기
1/39
post-thumbnail

1. Spring framework ?

자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다.

엔터프라이즈급 개발이란 뜻대로만 풀이하면 기업을 대상으로 하는 개발이라는 말입니다. 즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로 부터 행해지는 매우 큰 규모의 환경을 엔터프라이즈 환경이라 일컫습니다.

Spirng Framework는 경량 컨테이너로 자바 객체를 담고 직접 관리합니다. 객체의 생성 및 소멸 그리고 라이프 사이클을관리하며 언제든 Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 수 있습니다. 

이는 Spirng이 IOC 기반의 Framework임을 의미합니다.

2. 제어역전(IOC)

IOC는 Inversion of Control의 약자로 말 그대로 제어의 역전입니다. 그럼 제어의 역전이란 무엇일까?     

일반적으로 지금까지 프로그램은
객체 결정 및 생성 -> 의존성 객체 생성 -> 객채 내의 메소드 호출 하는 작업을 반복했습니다. 

이는 각 객체들이 프로그램의 흐름을 결정하고 각 객체를 구성하는 작업에 직접적으로 참여한 것입니다.

즉, 모든 작업을 사용자가 제어하는 구조인 것입니다.

3. Spring Bean

  • Java 클래스에 @Configuration 어노테이션을 추가하여 해당 클래스가 Spring 설정 클래스임을 명시해 주고 @Configuration 클래스 내에서 @Bean 어노테이션을 메서드에 추가하여 Bean을 정의합니다.

4. Spring의 어노테이션 (@Primary & @Qualifier )

  • <@Primary > : 여러후보가 자격이 있는 경우 Bean에게 우선권을 주는 것을 말함
  • <@Qualifier(“ … “) > : 같은 타입의 여러 Bean 중에서 특정 이름을 가진 Bean을 주입하도록 지정합니다.
    또한 두번 째 사진과 같이 @component를 입력하여 스프링에게 사용자대신 객체생성을 맡길수있습니다.

5. 의존성 주입( DI :Dependency Injection )

의존성 주입 : 제어 역전의 방법 중 하나로, 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입 받아 사용하는 방식을 의미합니다. 

<의존성 주입 3가지 방법>

  1. 필드 객체 선언을 통한 의존성 주입

  2. setter 메서드를 통한 의존성 주입 
    스프링에서는 @Autowired 라는 어노테이션을 통해 의존성을 주입할 수 있습니다. 

  3. 생성자를 통한 의존성 주입

5-1. 필드 객체 선언

5-2. Setter

5-3. 생성자

  • @Autowired를 주석처리해도 생성자주입에서 의존성주입이 발생하는 것을 볼 수 있는데, 이처럼 @Autowired를 추가하지 않아도 3가지 의존성으로 주입하면 spring이 @Autowired 를 자동생성 해줍니다.  
profile
Backend Developer

0개의 댓글

관련 채용 정보