Today I Learned_220426
Spring Framework
스프링 컨테이너
스프링 컨테이너는 BeanFactory, ApplicationContext로 구분됨. BeanFactory가 좀 더 상위의 개념이다.
컨테이너 : 사용하는 객체들을 담은 것
ApplicationContext
- 전체 애플리케이션의 문맥을 뜻하며, 스프링 컨테이너라 한다.
- 스프링 컨테이너가 객체를 생성하고 DI를 진행한다.
- ApplicationContext는 인터페이스 명으로, Annotaion, XML을 사용하여 컨테이너를 생성하는 구현체를 받아 사용한다.
- @Configuration이 붙은 클래스를 구성 정보로 사용하며, 이 클래스 내부의 @Bean이 붙은 메서드를 전부 조사하여 스프링 빈으로 만든다.
일반적으로 BeanFactory를 직접 사용하는 경우는 없으므로, ApplicationContext를 스프링 컨테이너라 한다.
스프링 컨테이너의 생성 과정
- 구성 정보 클래스(AppConfig.class)를 바탕으로 한 스프링 컨테이너 생성
- 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 바탕으로 스프링 빈을 등록. 컨테이너는 본인을 생성하면서 스프링 빈 저장소에 빈 등록을 한다.
- 스프링 컨테이너에 스프링 빈을 등록한 다음 의존관계 설정. 설정 정보를 참고하여 의존관계를 주입한다.
Bean
일반적으로는 메서드 이름으로 생성되며, name을 통해 빈 이름을 직접 부여할 수도 있다.
빈 이름은 항상 다른 이름을 부여해야 한다 -> 다른 빈이 무시되거나, 기존 빈을 덮어버리거나, 오류가 발생할 수 있음.
Jekyll
22일 이후의 포스팅들이 올라가지 않아 확인해 봤더니, 콘솔 창에 아래와 같은 오류가 나타났다.
22일 학습 내용으로 jekyll 내 Liquid 관련한 내용을 적었는데, 코드블럭 안에 적은 내용도 Liquid 문법으로 인식하여 오류가 났던 것.
이에 코드 내용을 우선 이미지로 넣었다.