gpt4 book ai didi

org.springframework.beans.factory.config.YamlMapFactoryBean类的使用及代码示例

转载 作者:知者 更新时间:2024-03-14 07:34:49 30 4
gpt4 key购买 nike

本文整理了Java中org.springframework.beans.factory.config.YamlMapFactoryBean类的一些代码示例,展示了YamlMapFactoryBean类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。YamlMapFactoryBean类的具体详情如下:
包路径:org.springframework.beans.factory.config.YamlMapFactoryBean
类名称:YamlMapFactoryBean

YamlMapFactoryBean介绍

[英]Factory for a Map that reads from a YAML source, preserving the YAML-declared value types and their structure.

YAML is a nice human-readable format for configuration, and it has some useful hierarchical properties. It's more or less a superset of JSON, so it has a lot of similar features.

If multiple resources are provided the later ones will override entries in the earlier ones hierarchically; that is, all entries with the same nested key of type Map at any depth are merged. For example:

foo: 
bar: 
one: two 
three: four

plus (later in the list)

foo: 
bar: 
one: 2 
five: six

results in an effective input of

foo: 
bar: 
one: 2 
three: four 
five: six

Note that the value of "foo" in the first document is not simply replaced with the value in the second, but its nested values are merged.
[中]从YAML源读取的映射的工厂,保留YAML声明的值类型及其结构。
YAML是一种很好的人类可读的配置格式,它具有一些有用的层次属性。它或多或少是JSON的超集,所以它有很多类似的特性。
如果提供了多个资源,后面的资源将在层次上覆盖前面资源中的条目;也就是说,所有在任何深度具有相同嵌套键的Map类型的条目都会合并。例如:

foo: 
bar: 
one: two 
three: four

plus(列表后面)

foo: 
bar: 
one: 2 
five: six

将有效输入

foo: 
bar: 
one: 2 
three: four 
five: six

请注意,第一个文档中的“foo”值不是简单地替换为第二个文档中的值,而是将其嵌套值合并。

代码示例

代码示例来源:origin: spring-projects/spring-framework

@Override
public void afterPropertiesSet() {
  if (isSingleton()) {
    this.map = createMap();
  }
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Template method that subclasses may override to construct the object
 * returned by this factory.
 * <p>Invoked lazily the first time {@link #getObject()} is invoked in
 * case of a shared singleton; else, on each {@link #getObject()} call.
 * <p>The default implementation returns the merged {@code Map} instance.
 * @return the object returned by this factory
 * @see #process(java.util.Map, MatchCallback)
 */
protected Map<String, Object> createMap() {
  Map<String, Object> result = new LinkedHashMap<>();
  process((properties, map) -> merge(result, map));
  return result;
}

代码示例来源:origin: spring-projects/spring-framework

@Test(expected = IllegalStateException.class)
public void testSetBarfOnResourceNotFound() {
  this.factory.setResources(new FileSystemResource("non-exsitent-file.yml"));
  assertEquals(0, this.factory.getObject().size());
}

代码示例来源:origin: alien4cloud/alien4cloud

public static Map<String, Object> from(Resource resource) {
    YamlMapFactoryBean factoryBean = new YamlMapFactoryBean();
    factoryBean.setResources(resource);
    return factoryBean.getObject();
  }
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void testSetIgnoreResourceNotFound() {
  this.factory.setResolutionMethod(YamlMapFactoryBean.ResolutionMethod.OVERRIDE_AND_IGNORE);
  this.factory.setResources(new FileSystemResource("non-exsitent-file.yml"));
  assertEquals(0, this.factory.getObject().size());
}

代码示例来源:origin: spring-projects/spring-framework

@Override
@Nullable
public Map<String, Object> getObject() {
  return (this.map != null ? this.map : createMap());
}

代码示例来源:origin: spring-projects/spring-framework

@SuppressWarnings({"unchecked", "rawtypes"})
private void merge(Map<String, Object> output, Map<String, Object> map) {
  map.forEach((key, value) -> {
    Object existing = output.get(key);
    if (value instanceof Map && existing instanceof Map) {
      // Inner cast required by Eclipse IDE.
      Map<String, Object> result = new LinkedHashMap<>((Map<String, Object>) existing);
      merge(result, (Map) value);
      output.put(key, result);
    }
    else {
      output.put(key, value);
    }
  });
}

代码示例来源:origin: apache/servicemix-bundles

/**
 * Template method that subclasses may override to construct the object
 * returned by this factory.
 * <p>Invoked lazily the first time {@link #getObject()} is invoked in
 * case of a shared singleton; else, on each {@link #getObject()} call.
 * <p>The default implementation returns the merged {@code Map} instance.
 * @return the object returned by this factory
 * @see #process(java.util.Map, MatchCallback)
 */
protected Map<String, Object> createMap() {
  final Map<String, Object> result = new LinkedHashMap<String, Object>();
  process(new MatchCallback() {
    @Override
    public void process(Properties properties, Map<String, Object> map) {
      merge(result, map);
    }
  });
  return result;
}

代码示例来源:origin: spring-projects/spring-framework

@Test(expected = DuplicateKeyException.class)
public void testDuplicateKey() {
  this.factory.setResources(new ByteArrayResource("mymap:\n  foo: bar\nmymap:\n  bar: foo".getBytes()));
  this.factory.getObject().get("mymap");
}

代码示例来源:origin: spring-cloud/spring-cloud-stream-app-starters

@SuppressWarnings({ "unchecked" })
private ControlFile parseYaml() {
  ControlFile cf = new ControlFile();
  YamlMapFactoryBean factory = new YamlMapFactoryBean();
  factory.setResources(controlFileResource);
  Map<String, Object> yaml = factory.getObject();

代码示例来源:origin: spring-projects/spring-framework

@Test
public void testFirstFound() {
  this.factory.setResolutionMethod(YamlProcessor.ResolutionMethod.FIRST_FOUND);
  this.factory.setResources(new AbstractResource() {
    @Override
    public String getDescription() {
      return "non-existent";
    }
    @Override
    public InputStream getInputStream() throws IOException {
      throw new IOException("planned");
    }
  }, new ByteArrayResource("foo:\n  spam: bar".getBytes()));
  assertEquals(1, this.factory.getObject().size());
}

代码示例来源:origin: org.springframework/spring-beans

@Override
@Nullable
public Map<String, Object> getObject() {
  return (this.map != null ? this.map : createMap());
}

代码示例来源:origin: org.springframework/spring-beans

@SuppressWarnings({"unchecked", "rawtypes"})
private void merge(Map<String, Object> output, Map<String, Object> map) {
  map.forEach((key, value) -> {
    Object existing = output.get(key);
    if (value instanceof Map && existing instanceof Map) {
      // Inner cast required by Eclipse IDE.
      Map<String, Object> result = new LinkedHashMap<>((Map<String, Object>) existing);
      merge(result, (Map) value);
      output.put(key, result);
    }
    else {
      output.put(key, value);
    }
  });
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void testGetObject() {
  this.factory.setResources(new ByteArrayResource("foo: bar".getBytes()));
  assertEquals(1, this.factory.getObject().size());
}

代码示例来源:origin: org.springframework/spring-beans

@Override
public void afterPropertiesSet() {
  if (isSingleton()) {
    this.map = createMap();
  }
}

代码示例来源:origin: org.springframework/spring-beans

/**
 * Template method that subclasses may override to construct the object
 * returned by this factory.
 * <p>Invoked lazily the first time {@link #getObject()} is invoked in
 * case of a shared singleton; else, on each {@link #getObject()} call.
 * <p>The default implementation returns the merged {@code Map} instance.
 * @return the object returned by this factory
 * @see #process(java.util.Map, MatchCallback)
 */
protected Map<String, Object> createMap() {
  Map<String, Object> result = new LinkedHashMap<>();
  process((properties, map) -> merge(result, map));
  return result;
}

代码示例来源:origin: apache/servicemix-bundles

@Override
public Map<String, Object> getObject() {
  return (this.map != null ? this.map : createMap());
}

代码示例来源:origin: apache/servicemix-bundles

@SuppressWarnings({"unchecked", "rawtypes"})
private void merge(Map<String, Object> output, Map<String, Object> map) {
  for (Entry<String, Object> entry : map.entrySet()) {
    String key = entry.getKey();
    Object value = entry.getValue();
    Object existing = output.get(key);
    if (value instanceof Map && existing instanceof Map) {
      Map<String, Object> result = new LinkedHashMap<String, Object>((Map) existing);
      merge(result, (Map) value);
      output.put(key, result);
    }
    else {
      output.put(key, value);
    }
  }
}

代码示例来源:origin: spring-projects/spring-framework

@SuppressWarnings("unchecked")
@Test
public void testOverrideAndRemoveDefaults() {
  this.factory.setResources(new ByteArrayResource("foo:\n  bar: spam".getBytes()),
      new ByteArrayResource("foo:\n  spam: bar".getBytes()));
  assertEquals(1, this.factory.getObject().size());
  assertEquals(2, ((Map<String, Object>) this.factory.getObject().get("foo")).size());
}

代码示例来源:origin: apache/servicemix-bundles

@Override
public void afterPropertiesSet() {
  if (isSingleton()) {
    this.map = createMap();
  }
}

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com