3. 스프링으로 전환하기

2024. 11. 2. 16:06·Spring

이 포스팅은 인프런에 있는 김영한 강사님의 스프링 핵심 원리 강의를 들으며 개인 공부를 한 것입니다.
소스코드는 제가 직접 작성하였습니다. (참고 : 깃허브주소)

✅ 스프링 컨테이너


/* 기존에는 개발자가 직접 자바코드로 모든 것을 했다 */
//  AppConfig appConfig = new AppConfig();  
//  CustService custService = appConfig.custService();  
//  SmsService smsService = appConfig.smsService();  

/* 이제는 스프링 컨테이너에 객체를 스프링 빈으로 등록하고, 스프링 컨테이너에서 스프링 빈을 찾아서 사용한다*/
    ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);  
    CustService custService = ac.getBean("custService", CustService.class);  
    SmsService smsService = ac.getBean("smsService", SmsService.class);
  • ApplicationContext를 스프링 컨테이너라 한다
  • 기존에는 개발자가 AppConfig를 사용해서 직접 객체를 생성하고 DI를 했지만 이제부터는 스프링 컨테이너를 통해서 사용한다
    • 스프링 컨테이너를 통해서 직접 객체를 생성하고 DI를 한다
@Configuration  
public class AppConfig {  

    @Bean  
    public SmsService smsService() {  
        return new SmsServiceImpl(  
                smsRepository(),  
                custRepository(),  
                smsFilter()  
        );  
    }
    ...
  • 스프링 컨테이너는 @Configuration 이 붙은 AppConfig 클래스를 설정(구성) 정보로 사용한다.
  • @Bean이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라 한다.
  • 스프링 빈은 @Bean 이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다
  • ApplicationContext 스프링 컨테이너를 통해 필요한 스프링 빈을 찾아야한다
    • applicationContext.getBean() 메서드 사용

✅ 빈 이름

  • 빈 이름은 메서드 이름을 사용한다.
  • 빈 이름을 직접 부여할 수도 있다
    • @Bean(name="memberService2")
  • 빈 이름은 항상 다른 이름을 부여해야 한다.

✅ 스프링 빈 조회

  • ac.getBean(빈이름 , 타입)
  • ac.getBean(타입)
  • 타입으로 조회 시 같은 타입의 스프링 빈이 둘 이상이면 오류가 발생한다. 이때는 빈 이름을 지정하자
  • 스프링 빈 조회시, 부모 타입으로 조회하면 자식 타입도 함께 조회한다.

'Spring' 카테고리의 다른 글

6. 의존관계 자동주입  (0) 2025.01.28
5. 컴포넌트 스캔  (0) 2025.01.28
4. 싱글톤 컨테이너  (0) 2025.01.28
2. OCP, DIP 위반 해결방법  (0) 2024.11.02
1. 문자 발송 서비스 설계 및 구현  (3) 2024.10.31
'Spring' 카테고리의 다른 글
  • 5. 컴포넌트 스캔
  • 4. 싱글톤 컨테이너
  • 2. OCP, DIP 위반 해결방법
  • 1. 문자 발송 서비스 설계 및 구현
꾸준히 기록하는 지수
꾸준히 기록하는 지수
서비스 백엔드 개발자가 되기 위해 제 경험들을 하나씩 기록해봅니다
  • 꾸준히 기록하는 지수
    지수블로그
    꾸준히 기록하는 지수
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • Spring (15)
      • JAVA (9)
      • 클라우드_인프라 (4)
      • Data (5)
      • CS (3)
      • 돌아보기 (0)
      • 취업준비 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SCG
    MSA
    트랜잭션
    스프링트랜잭션
    DASP후기
    데이터아키텍처준전문가
    트러블슈팅
    스프링
    궁금증
    DASP합격후기
    Spring
    스프링클라우드
    자격증
    DASP합격
    스프링부트
    스프링테스트
    DAsP
    SpringCloudGateway
    AWS
    트랜잭션전파
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
꾸준히 기록하는 지수
3. 스프링으로 전환하기
상단으로

티스토리툴바