ApplicationContext와 AnnotationConfigApplicationContext

Greenee·2021년 9월 23일

안녕하세요! 먼저 말씀드리자면, 글 제목과 내용이 큰 관계가 없을 수도 있어요.. 질문의 매개체가 ApplicationContext여서 지은 제목임니다.

요즘 스프링 공부중~.~
인프런에서 스프링 핵심원리 강의 듣는 중인데, 정신없이 따라가다가 갑자기 궁금해졌어요.
분명 강사님이 처음에 알려주신거 같긴 한데, 기억이 안나고...
그래서 직접 찾아보게 됐습니다.

갑자기 궁금했던 것은 이것입니다

AnnotationConfigApplicationContext acac = new AnnotationConfigApplicationContext(AppConfig.class);

ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);

여기에서 AnnotationConfigApplicationContext형으로 정의해도 되는데, ApplicationContext로 만드는 이유가 궁금했어요..!!

부모말고 자식타입으로 생성해도 자식은 부모거를 다 쓸 수 있는데 왜..???????


출처: https://www.slipp.net/wiki/pages/viewpage.action?pageId=25527577

구글링을 하다가 이걸 보게 됐고, '아 맞다. 그랬었지.. 쟤가 쟤를 구현했었지..' 했는데 그래도 확실하게 모르겠어서 결국 남친에게 물어보게 되었다.

(이쯤되니 단순히 저거 하나가 궁금한게 아니라, 부모 자식이 있을 때 왜 부모타입을 써야하는지, 그럼 자식타입을 쓰면 어떻게 되는지,, 그냥 모르는거 투성이가 된 느낌이었다.
분명히 얼마전에 오빠랑 객체지향 공부할 때만 해도, 모든걸 다 이해한줄 알았는데 또 이렇게 헷갈리네..)

부모인터페이스, 자식클래스가 있다고 쳤을 때, 부모인터페이스가 가지고 있던 메소드를 자식클래스가 구현할거야.
근데 난 부모인터페이스에 있던 메소드만 필요해.
부모형식 참조변수에 자식클래스로 구현한 객체를 넣을거야.
그러면 굳이 자식형식을 갖지 않고, 부모형식에다가 자식클래스로 구현만 하는게 더 깔끔하고 논리적으로도 맞으니까 그렇게 하는 것이다. 맞나?

질문을 하고 이야기를 듣고 내가 이해한걸 정리했는데 사실 이해 못한거였네ㅎㅎㅠㅠ
헛소리->취소선, 굵은글씨->오빠가 정정해줌.

확실히 처음보단 알게 된 거 같은데, 누구한테 설명하라고 하면 자신없는걸 ㅠㅠ
이유가 명확하지 않은 늬낌..

혹시나 하고, 듣던 강의의 질문 게시판을 검색해보니 나랑 같은 질문을 한 사람들이 있었다.

그 질문에 대한 강사님의 답변을 보고나니 살짝 와닿았다.

근데 저거 보고 또 질문생김.. 그래서 또 남친한테 물어봤고 (감사합니다ㅠㅠ 맨날 내 궁금함 친절하게 잘 알려줘서)
실력이 미흡하여 궁금한게 많습니다..
친절한 설명임에도 헷갈리고 어려웠다. 미안 ㅠㅠ


이걸 보고 드디어 명쾌하게 와닿아서 유레카를 외침 야호

그렇구나!!!!!!

profile
묵묵히 하는 중인 초보개발자 ٩( ᐛ )و

0개의 댓글