AnnotationConfigApplicationContext 는 구현 클래스
getBean 같은건 다 BeanFactory가 제공하는 기능 ( 지금까지 썼던 기능은 BeanFactory의 기능 )
#ApplicationContext 가 제공하는
1. MessageSource
2. EnvironmentCapable
부가기능(1~4) 은
거의 ApplicationContext만 사용한다고 생각하면 된다.
---------------------------------------------------------------4-7. 다양한 설정 형식 지원 - 자바 코드, XML
xml설정은 아 이런게 있구나~ 정도로만 이해
1. 자바코드 방법 : AppConfig.class 는 우리가 했던거 - AnnotationConfigApplicationContext
2. 과거는 xml 방법 사용 : appConfig.xml - GenericXmlApplicationContext
XML 방법은 요즘은 아예 사용안함.. ( 컴파일 필요없다는 장점이 있다. )
자바코드가 아닌건 다 resources에 두자!
"appConfig.xml" 하면 자동으로 resources 밑에 있는 appConfig.xml 파일을 읽는다.
잘 뜬다.
결론 : 스프링이 얼마나 유연하게 설정을 할 수 있나 알면 됐음 ㅋㅋ
이렇게 유연하게 ( 사용자설정 파일로도 가능 )
--------------------------------------------------------------- 4-8. 스프링 빈 설정 메타 정보 - BeanDefinition ( 조금 깊이있는 내용 )
다양한 설정이 가능한 이유 : BeanDefinition ( 빈 정보에 대한 그 자체를 추상화 )
-> AppConfig.java의 자바코드를 읽어서 BeanDefinition 을 만들면 된다.
-> appConfing.xml을 읽어서 BeanDefinition을 만들면 된다.
====역할과 구현을 개념적으로 나눈 것!!!!!!!!!!!!!!!!
BeanDefinition = bean 설정 메타정보
스프링 컨테이너는 BeanDefinition만 안다. ( 와 지린다.. )
AnnotatedBeanDefinitionReader 가 BeanDefinition을 만듦. ( 자바코드를 메타데이터처럼 읽음 = 걍 쭉읽음(xml파일같이))
그 정보를 BeanDefinition에 담는다.
lazy : 원래 빈들은 스프링컨테이너가 뜰 때 등록되는데 실제 사용하는 시점에 스프링빈으로 등록해
scope : 기본은 singleton
빈 이름, 빈
이런 정보들이 있음. ( 빈을 만들기 위한 정보들 )
-> 이런 정보들을 이용해서 실제 인스턴스를 생성할 수 있음.
오 직접 BeanDefinition을 생성할 수도 있음 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
걍 BeanDefinition으로 추상화 되어있다고 생각하자.
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
스프링이 다양한 형태의 설정 정보를 BeanDefinition으로 추상화해서 사용하는 것
AppConfig방식 = 팩토리메서드방식 ( 몰라도됨 )
'Java, Spring > 스프링 핵심 원리 기본' 카테고리의 다른 글
5-4. 싱글톤 방식의 주의점(아주 중요) ~ 5-6 (0) | 2022.08.07 |
---|---|
5-1. 웹 애플리케이션과 싱글톤 ~ (0) | 2022.08.07 |
4-2. 빈 조회 ~ 4-5. 상속관계에서 빈 조회 (0) | 2022.08.06 |
4-1. 스프링 컨테이너 생성 (0) | 2022.08.06 |
3-9. 스프링으로 전환하기 (0) | 2022.08.06 |