프로그래밍 공부/Spring

스프링 스터디 기본편 -3

* 해당 내용은 스프링 핵심원리 기본편 - 인프런 강의를 기반으로 정리합니다

 

스프링 컨테이너와 스프링 빈

 

사실 예전에 스프링을 혼자 한번 공부하려다가, xml을 이해 못해서 포기했었는데 (정말 충격이었고... 무슨소린지 모르겠어서 포기했었다. 생각해보니 그당시 들었던 인강도 좀... 잘못골랐던거같다. 심지어 ide의 도움도 제대로 못받아서... 생략) 옛날에는 xml기반으로 만들었고, 현재는 스프링 컨테이너를 통해 만든다고 한다.

 

 

Spring 관련

스프링 빈 조회에 대해서 길게 실습을 했는데, 실제로 현업에서는 자주 쓰이지 않는다고. 그렇지만 내부적으로 어떻게 돌아가는지는 배워두는게 좋을 것 같다.

 

우리가 ApplicationContext를 사용할 때, BeanFactory등의 다양한 인터페이스를 extends 하고있어서 해당 내용을 사용할 수 있다.

빈 조회시 사용했던 getBean()함수의 경우 BeanFactory에 있는 내용. (사실상 ApplicationContext만 사용한다)

 

Application의 부가기능 (나중에 다른 강의에서 추가적으로 설명을 해주신다고 한다)

  • 메시지소스를 활용한 국제화 기능 (언어)
  • 환경변수 (로컬, 개발, 운영)
  • 어플리케이션 이벤트
  • 편리한 리소스 조회

XML을 사용하면 컴파일 없이 빈 설정 정보를 변경할 수 잇는 장점이 있다. 현재는 거의 사용하지 않지만, 래거시 프로젝트 같은 경우는 XML로 만든 것이 많다고.

 

앞서서 만들었던 이런 내용이 (AppConfig 버전)
위와 완전히 동일한 내용. (XML 버전)

 

 

우리가 xml로 만들던, appconfig로 만들던 스프링 컨테이너는 같이 인식함.

 

BeanDefinition을 통해서 스프링 빈의 메타정보를 추상화하며, 스프링 빈은 직접 넣어서 진행하거나 factoryBeanName을 사용하는 방법이 있는데, 대체로 우리는 후자를 사용한다.

 

 

IntelliJ관련

iter을 적고 tab을 누르면 리스트가 있을 시 for를 자동으로 만들어준다 (정말.... 장난아니게 유용하다고 생각한 기능)

(참고- System.out.println의 경우 sout을 적고 tab으로 사용가능)

 

사담

사실 예전에는 위에 적은것처럼 정말 어렵게 느꼈었는데, 영한님이 정말 편하게 가르쳐준다는걸 느낀다.. (강의 사길 잘했다..)

이렇게 배우고나서 보니까 적힌 내용이나 방법이 다를 뿐, xml 역시 현재 배우는 내용과 큰 틀에서 차이가 심한건 아닌듯.

'프로그래밍 공부 > Spring' 카테고리의 다른 글

스프링 스터디 기본편 -5  (0) 2021.04.25
스프링 스터디 기본편 - 4  (0) 2021.04.25
스프링 스터디 기본편 -4  (0) 2021.04.22
스프링 스터디 기본편 -2  (0) 2021.04.20
스프링 스터디 기본편 - 1  (0) 2021.04.17