/** * 根据baseName创建不重复的beanName。 * <p> * 有别于 {@link BeanDefinitionReaderUtils.generateBeanName()} * 方法,这里使用指定的baseName,而不是使用类名作为baseName。 * </p> */ public static String generateBeanName(String baseName, BeanDefinitionRegistry registry) { return generateBeanName(baseName, registry, null, false); }
/** * 根据baseName创建不重复的beanName。 * <p> * 有别于 {@link BeanDefinitionReaderUtils.generateBeanName()} * 方法,这里使用指定的baseName,而不是使用类名作为baseName。 * </p> */ public static String generateBeanName(String baseName, BeanDefinitionRegistry registry) { return generateBeanName(baseName, registry, null, false); }
/** * 根据baseName创建不重复的beanName。 * <p> * 有别于 {@link BeanDefinitionReaderUtils.generateBeanName()} * 方法,这里使用指定的baseName,而不是使用类名作为baseName。 * </p> */ public static String generateBeanName(String baseName, BeanDefinitionRegistry registry) { return generateBeanName(baseName, registry, null, false); }
/** * 在创建beanFactory之初被调用。 * * @param webxComponentsContext */ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { // 由于初始化components依赖于webxConfiguration,而webxConfiguration可能需要由PropertyPlaceholderConfigurer来处理, // 此外,其它有一些BeanFactoryPostProcessors会用到components, // 因此components必须在PropertyPlaceholderConfigurer之后初始化,并在其它BeanFactoryPostProcessors之前初始化。 // // 下面创建的WebxComponentsCreator辅助类就是用来确保这个初始化顺序: // 1. PriorityOrdered - PropertyPlaceholderConfigurer // 2. Ordered - WebxComponentsCreator // 3. 普通 - 其它BeanFactoryPostProcessors BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(WebxComponentsCreator.class); builder.addConstructorArgValue(this); BeanDefinition componentsCreator = builder.getBeanDefinition(); componentsCreator.setAutowireCandidate(false); BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory; String name = SpringExtUtil.generateBeanName(WebxComponentsCreator.class.getName(), registry); registry.registerBeanDefinition(name, componentsCreator); }
/** * 在创建beanFactory之初被调用。 * * @param webxComponentsContext */ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { // 由于初始化components依赖于webxConfiguration,而webxConfiguration可能需要由PropertyPlaceholderConfigurer来处理, // 此外,其它有一些BeanFactoryPostProcessors会用到components, // 因此components必须在PropertyPlaceholderConfigurer之后初始化,并在其它BeanFactoryPostProcessors之前初始化。 // // 下面创建的WebxComponentsCreator辅助类就是用来确保这个初始化顺序: // 1. PriorityOrdered - PropertyPlaceholderConfigurer // 2. Ordered - WebxComponentsCreator // 3. 普通 - 其它BeanFactoryPostProcessors BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(WebxComponentsCreator.class); builder.addConstructorArgValue(this); BeanDefinition componentsCreator = builder.getBeanDefinition(); componentsCreator.setAutowireCandidate(false); BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory; String name = SpringExtUtil.generateBeanName(WebxComponentsCreator.class.getName(), registry); registry.registerBeanDefinition(name, componentsCreator); }
protected final String generateBeanName(String itemName, BeanDefinitionRegistry registry) { ParsingModuleInfo item = assertNotNull(items.get(itemName), "missing %s", itemName); item.beanName = SpringExtUtil.generateBeanName(item.getBaseBeanName(), registry); return item.beanName; } }
protected final String generateBeanName(String itemName, BeanDefinitionRegistry registry) { ParsingModuleInfo item = assertNotNull(items.get(itemName), "missing %s", itemName); item.beanName = SpringExtUtil.generateBeanName(item.getBaseBeanName(), registry); return item.beanName; } }
protected void postProcessItems(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, Map<String, ParsingModuleInfo> items, String tags) { // 注册所有明确定义的beans for (ParsingModuleInfo item : items.values()) { if (item.bd != null) { assertNotNull(item.key, "Specificly-defined module could not be found in %s: %s", tags, item.itemName); item.beanName = SpringExtUtil.generateBeanName(item.getBaseBeanName(), parserContext.getRegistry()); parserContext.getRegistry().registerBeanDefinition(item.beanName, item.bd); } } // 设置ModuleFactory.setModules() List<Object> moduleList = createManagedList(element, parserContext); log.debug("Defined {} modules with {}", items.size(), getBeanClass(null).getSimpleName()); for (ParsingModuleInfo item : items.values()) { if (item.beanName != null) { BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(ModuleInfo.class); bdb.addConstructorArgValue(item.key); bdb.addConstructorArgValue(item.beanName); bdb.addConstructorArgValue(item.itemName); // className or script resourceName moduleList.add(bdb.getBeanDefinition()); log.debug("Defined module {} with {}", new Object[] { item.key, item.itemName }); } } builder.addPropertyValue("modules", moduleList); }
protected void postProcessItems(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, Map<String, ParsingModuleInfo> items, String tags) { // 注册所有明确定义的beans for (ParsingModuleInfo item : items.values()) { if (item.bd != null) { assertNotNull(item.key, "Specificly-defined module could not be found in %s: %s", tags, item.itemName); item.beanName = SpringExtUtil.generateBeanName(item.getBaseBeanName(), parserContext.getRegistry()); parserContext.getRegistry().registerBeanDefinition(item.beanName, item.bd); } } // 设置ModuleFactory.setModules() List<Object> moduleList = createManagedList(element, parserContext); log.debug("Defined {} modules with {}", items.size(), getBeanClass(null).getSimpleName()); for (ParsingModuleInfo item : items.values()) { if (item.beanName != null) { BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(ModuleInfo.class); bdb.addConstructorArgValue(item.key); bdb.addConstructorArgValue(item.beanName); bdb.addConstructorArgValue(item.itemName); // className or script resourceName moduleList.add(bdb.getBeanDefinition()); log.debug("Defined module {} with {}", new Object[] { item.key, item.itemName }); } } builder.addPropertyValue("modules", moduleList); }
/** 从id attribute中取得bean name,假如未指定,则从<code>getDefaultName()</code>中取得默认名。 */ String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext) { String id = trimToNull(element.getAttribute(ID_ATTRIBUTE)); if (id == null) { id = assertNotNull(getDefaultId(), "neither id nor defaultName was specified"); id = SpringExtUtil.generateBeanName(id, parserContext.getRegistry(), definition, parserContext.isNested()); } return id; }
/** 从id attribute中取得bean name,假如未指定,则从<code>getDefaultName()</code>中取得默认名。 */ String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext) { String id = trimToNull(element.getAttribute(ID_ATTRIBUTE)); if (id == null) { id = assertNotNull(getDefaultId(), "neither id nor defaultName was specified"); id = SpringExtUtil.generateBeanName(id, parserContext.getRegistry(), definition, parserContext.isNested()); } return id; }
/** 从id attribute中取得bean name,假如未指定,则从<code>getDefaultName()</code>中取得默认名。 */ String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext) { String id = trimToNull(element.getAttribute(ID_ATTRIBUTE)); if (id == null) { id = assertNotNull(getDefaultId(), "neither id nor defaultName was specified"); id = SpringExtUtil.generateBeanName(id, parserContext.getRegistry(), definition, parserContext.isNested()); } return id; }
/** * 根据baseName创建不重复的beanName。 * <p> * 有别于 {@link BeanDefinitionReaderUtils.generateBeanName()} * 方法,这里使用指定的baseName,而不是使用类名作为baseName。 * </p> */ public static String generateBeanName(String baseName, BeanDefinitionRegistry registry) { return generateBeanName(baseName, registry, null, false); }
protected final String generateBeanName(String itemName, BeanDefinitionRegistry registry) { ParsingModuleInfo item = assertNotNull(items.get(itemName), "missing %s", itemName); item.beanName = SpringExtUtil.generateBeanName(item.getBaseBeanName(), registry); return item.beanName; } }
/** * 在创建beanFactory之初被调用。 * * @param webxComponentsContext */ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { // 由于初始化components依赖于webxConfiguration,而webxConfiguration可能需要由PropertyPlaceholderConfigurer来处理, // 此外,其它有一些BeanFactoryPostProcessors会用到components, // 因此components必须在PropertyPlaceholderConfigurer之后初始化,并在其它BeanFactoryPostProcessors之前初始化。 // // 下面创建的WebxComponentsCreator辅助类就是用来确保这个初始化顺序: // 1. PriorityOrdered - PropertyPlaceholderConfigurer // 2. Ordered - WebxComponentsCreator // 3. 普通 - 其它BeanFactoryPostProcessors BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(WebxComponentsCreator.class); builder.addConstructorArgValue(this); BeanDefinition componentsCreator = builder.getBeanDefinition(); componentsCreator.setAutowireCandidate(false); BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory; String name = SpringExtUtil.generateBeanName(WebxComponentsCreator.class.getName(), registry); registry.registerBeanDefinition(name, componentsCreator); }
protected void postProcessItems(Element element, ParserContext parserContext, BeanDefinitionBuilder builder, Map<String, ParsingModuleInfo> items, String tags) { // 注册所有明确定义的beans for (ParsingModuleInfo item : items.values()) { if (item.bd != null) { assertNotNull(item.key, "Specificly-defined module could not be found in %s: %s", tags, item.itemName); item.beanName = SpringExtUtil.generateBeanName(item.getBaseBeanName(), parserContext.getRegistry()); parserContext.getRegistry().registerBeanDefinition(item.beanName, item.bd); } } // 设置ModuleFactory.setModules() List<Object> moduleList = createManagedList(element, parserContext); log.debug("Defined {} modules with {}", items.size(), getBeanClass(null).getSimpleName()); for (ParsingModuleInfo item : items.values()) { if (item.beanName != null) { BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(ModuleInfo.class); bdb.addConstructorArgValue(item.key); bdb.addConstructorArgValue(item.beanName); bdb.addConstructorArgValue(item.itemName); // className or script resourceName moduleList.add(bdb.getBeanDefinition()); log.debug("Defined module {} with {}", new Object[] { item.key, item.itemName }); } } builder.addPropertyValue("modules", moduleList); }
/** 从id attribute中取得bean name,假如未指定,则从<code>getDefaultName()</code>中取得默认名。 */ String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext) { String id = trimToNull(element.getAttribute(ID_ATTRIBUTE)); if (id == null) { id = assertNotNull(getDefaultId(), "neither id nor defaultName was specified"); id = SpringExtUtil.generateBeanName(id, parserContext.getRegistry(), definition, parserContext.isNested()); } return id; }