Spring IoC 용기 지식 점 상세 설명
식당 으로서 요 리 를 만 들 려 면 요리 의 원료 와 레 시 피 를 알 아야 한다.마찬가지 로 IoC 용기 가 각 업무 대상 과 그들의 의존 관 계 를 관리 하려 면 특정한 경 로 를 통 해 이런 정 보 를 기록 하고 관리 해 야 한다.BeanDefinition 대상 은 이 책임 을 집 니 다.용기 에 있 는 모든 bean 은 해당 하 는 BeanDefinition 인 스 턴 스 가 있 습 니 다.이 인 스 턴 스 는 bean 대상 의 모든 필요 한 정 보 를 저장 하 는 것 을 책임 집 니 다.이 는 bean 대상 의 class 유형,추상 류 인지,구조 방법 과 파라미터,그 속성 등 을 포함 합 니 다.클 라 이언 트 가 용기 에 해당 하 는 대상 을 요청 할 때 용 기 는 이 정 보 를 통 해 클 라 이언 트 에 게 사용 가능 한 bean 인 스 턴 스 를 되 돌려 줍 니 다.위 챗 검색 웹resource 관심 후 더 많은 건어물 을 획득 하 세 요!
원자 재 는 이미 준비 되 었 습 니 다.(Bean Definition 을 원 료 를 보고)요 리 를 시작 하 세 요.등등,당신 은 레 시 피 가 필요 합 니 다.Bean Definition Registry 와 Bean Factory 는 바로 이 레 시 피 입 니 다.Bean Definition Registry 는 bean 의 등록 논 리 를 추상 화하 고 Bean Factory 는 bean 의 관리 논 리 를 추상 화 했 습 니 다.그리고 각 Bean Factory 의 실현 류 는 bean 의 등록 과 관리 업 무 를 구체 적 으로 맡 았 다.그들 사이 의 관 계 는 다음 과 같다.
Default Listable BeanFactory 는 비교적 통용 되 는 BeanFactory 로 실현 되 었 고 Bean Definition Registry 인터페이스 도 실현 되 었 기 때문에 Bean 의 등록 관리 업 무 를 맡 았 다.그림 에서 도 알 수 있 듯 이 BeanFactory 인터페이스 에는 getBean,containBean,getType,getAliases 등 bean 을 관리 하 는 방법 이 포함 되 어 있 고,BeanDefinition Registry 인 터 페 이 스 는 registerBeanDefinition,removeBeanDefinition,getBeanDefinition 등 BeanDefinition 을 등록 관리 하 는 방법 이 포함 되 어 있다.
다음은 간단 한 코드 를 통 해 BeanFactory 밑바닥 이 어떻게 작 동 하 는 지 모 의 하 겠 습 니 다.
//
DefaultListableBeanFactory beanRegistry = new DefaultListableBeanFactory();
// BeanDefinition
AbstractBeanDefinition definition = new RootBeanDefinition(Business.class,true);
// bean
beanRegistry.registerBeanDefinition("beanName",definition);
// bean, bean
// ........
// bean
// : beanRegistry BeanFactory , ,
// BeanDefinitionRegistry BeanFactory
BeanFactory container = (BeanFactory)beanRegistry;
Business business = (Business)container.getBean("beanName");
이 코드 는 BeanFactory 바 텀 의 대체적인 작업 절 차 를 설명 하기 위해 실제 상황 이 더욱 복잡 할 것 입 니 다.예 를 들 어 bean 간 의 의존 관 계 는 외부 프로필(XML/properties)에서 정의 할 수도 있 고 주석 방식 일 수도 있 습 니 다.Spring IoC 용기 의 전체 작업 절 차 는 크게 두 단계 로 나 눌 수 있다.이상 은 이번 소개 의 모든 지식 포인트 내용 입 니 다.여러분 의 학습 과 우리 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.