Replies: 1 comment
|
언제나 ..첫번째로 올리시는.. 대단하십니다 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
4_스프링 컨테이너와 스프링 빈
스프링 컨테이너 생성
ApplicationContext-> 스프링 컨테이너이며, 인터페이스이다.XML을 기반으로 생성할 수도 있고, Annotation 기반의 자바 설정 클래스로도 생성할 수 있다.
new AnnotationConfigApplicationContext는 구현체이다.스프링 컨테이너의 생성 과정
AppConfig.class를 넘겨주는데 이것은 구성 정보를 넘겨주기 위함이다. (정보를 넘겨야 함)AppConfig.class를 통해 스프링 컨테이너가 본인을 생성하면서 스프링 빈 정보를 하나씩 등록한다.@Bean어노테이션으로 등록된 것들을 가지고 스프링 빈으로 등록한다.보통 메서드 이름을 빈 이름으로 가지고, new 하여 반환되는 객체를 빈 객체로 가진다.
@Bean(name="memberService2")와 같이 사용할 수 있다.스프링 빈 의존 관계 설명
컨테이너에 등록된 모든 빈 조회
스프링 컨테이너에 실제 스프링 빈이 잘 등록되었는지 확인해야 한다.
모든 빈 출력하기
ac.getBeanDefinitionNames(): 스프링에 등록된 모든 빈 이름을 조회ac.getBean(): 빈 이름으로 빈 객체(인스턴스)를 조회한다.애플리케이션 빈 출력하기
getRole()로 구분할 수 있다.ROLE_APPLICATION: 일반적으로 사용자가 정의한 빈ROLE_INERASTRUCTURE: 스프링이 내부에서 사용하는 빈스프링 빈 조회 - 기본
스프링 컨테이너에서 스프링 빈을 찾는 기본적인 조회 방법에는 2가지가 존재한다.
ac.getBean(빈이름, 타입)ac.getBean(타입)NoSuchBeanDefinitionException : No bean named '검색한스프링빈이름' available스프링 빈 조회 - 동일한 타입이 둘 이상
ac.getBeanOfType()을 사용하면 해당 타입의 모든 빈을 조회할 수 있다.스프링 빈 조회 - 상속 관계 (중요)
BeanFactory와 ApplicationContext
BeanFactory
getBean()을 제공함ApplicationContext
정리
다양한 설정 형식 지원 - 자바 코드, XML
애노테이션 기반 자바 코드 설정 사용
new AnnotationConfigApplicationContext(AppConfig.class)AnnotationConfigApplicationContext클래스를 사용하면서 자바 코드로 된 설정 정보를 넘기는 방법이다.XML 설정 사용
GenericXmlApplicationContext를 사용하면서xml설정 파일을 넘기는 방법XmlAppConfig 사용 자바 코드
xml 기반의 스프링 빈 설정 정보
스프링 빈 설정 메타 정보 - BeanDefinition
BeanDefinition이라는 추상화가 있기 때문에 여러 설정 형식을 지원할 수 있는 것이다.BeanDefinition을 빈 설정 메타정보라 한다.@Bean,<bean>당 각각 하나씩 메타 정보가 생성된다.All reactions