Spring 물방울 뚫 기 (2) 공장 DefaultListableBeanFactory 실현

1972 단어 자바spring
개술
앞의 장 에서 beanfactory 의 인터페이스 체 계 를 분 석 했 는데 지금 은 완전한 beanfactory 가 실현 되 는 것 을 보 았 다. 이것 은 우리 가 지난 장 에서 말 한 세 개의 인 터 페 이 스 를 실현 하고 완전한 IoC 능력 을 제공 했다.
속성
주석 을 보다
/** k-v,k   id,v      */
    private static final Map> serializableFactories =
            new ConcurrentHashMap<>(8);


    /**        beanName bean     */
    private boolean allowBeanDefinitionOverriding = true;

    /**          */
    private boolean allowEagerClassLoading = true;

    /**         */
    @Nullable
    private Comparator dependencyComparator;

    /**           ,           */
    private AutowireCandidateResolver autowireCandidateResolver = SimpleAutowireCandidateResolver.INSTANCE;

    /**    type value    */
    private final Map, Object> resolvableDependencies = new ConcurrentHashMap<>(16);

    /** beanName beanDefinition    */
    private final Map beanDefinitionMap = new ConcurrentHashMap<>(256);

    /** beanName beanDefinitionHolder     */
    private final Map mergedBeanDefinitionHolders = new ConcurrentHashMap<>(256);

    /** beanType beanName  ,        */
    private final Map, String[]> allBeanNamesByType = new ConcurrentHashMap<>(64);

    /** beanType beanName  ,     */
    private final Map, String[]> singletonBeanNamesByType = new ConcurrentHashMap<>(64);

    /**          bean      */
    private volatile List beanDefinitionNames = new ArrayList<>(256);

    /**                 bean     */
    private volatile Set manualSingletonNames = new LinkedHashSet<>(16);

    /**     bean         */
    @Nullable
    private volatile String[] frozenBeanDefinitionNames;

    /**     bean   */
    private volatile boolean configurationFrozen = false;

방법.

좋은 웹페이지 즐겨찾기