• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

MemberApp, OrderApp에 의해 각각 두개의 스프링 컨테이너가 생성됐다 생각하면 될까요?

24.04.03 14:15 작성 24.04.04 13:46 수정 조회수 88

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요.전 섹터의 마지막강의 "스프링으로 전환하기"에서 스프링을 이용해 DI를 적용하면서MemberApp, OrderApp에 각각 ApplicationContext ac = new ... 를 사용했는데 이떄,
MemberApp, OrderApp클래스 각각 서로 다른 스프링 컨테이너를 띄었다 생각하면될까요?

답변 1

답변을 작성해보세요.

1

OMG님의 프로필

OMG

2024.04.04

안녕하세요. Min04님, 공식 서포터즈 OMG입니다.

OrderApp과 MemberApp은 각각 main()메서드를 통해 개별로 실행할 수 있는 클래스입니다.

개별 클래스 내에서 스프링 컨테이너(ApplicationContext)를 1개씩 생성하였는데요,

ApplicationContext ac = new ... 의 스프링 컨테이너를 생성하는 클래스를 각각의 App클래스에서 선언한것은 CoreApplication의 스프링 프로젝트 실행 환경과는 별개로 봐야합니다.

 

예를 들어, 다음과 같이 개별 실행 클래스에서 member를 각각 생성한다고 하여

MemberApp - member1 생성

public class MemberApp {
    public static void main(String[] args) {
        Member member1= new Member();
    }
}

OrderApp - member2 생성

public class OrderApp {
    public static void main(String[] args) {
        Member member2= new Member();
    }
}

TestApp - member3 생성

public class TestApp {
    public static void main(String[] args) {
        Member member3= new Member();
    }
}

member 인스턴스를 3개 생성했다고 하지 않습니다. 각각의 개별 실행되는 main클래스에서 member 인스턴스를 하나씩 생성한 것이지요.

(여기서의 member를 스프링 컨테이너로 보시면 됩니다.)

 

감사합니다.

Min04님의 프로필

Min04

질문자

2024.04.04

친절한 설명 감사합니다!