Spring Boot在YAML配置中为别名创建新实例

时间:2017-01-24 13:58:37

标签: spring spring-boot yaml anchor alias

当我加载以下application.yaml时,将解析组件及其关系,但不会重新使用已存在的实例,而是创建新的comp1。使用独立的SnakeYAML时,将正确地重用对象。 为了简洁起见,我在代码示例中省略了访问器。

components:
  - &comp1
    name: comp1
  - &comp2
    name: comp2
    dependencies: [*comp1]
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "components")
public class ComponentConfiguration {
    private List<Component> components;
}

public class Component {
    private String name;
    private List<Component> dependencies;
}

所以在调试器中我看到了:

components = {ArrayList} size = 2
  0 = {Component@0}
  1 = {Component@1}
    dependencies = {ArrayList} size = 1
      0 = {Component@2}

我的目标是将正确重用的Component @ 0作为依赖项而不是新的实例Component @ 2。 如何使用Spring Boot和YAML实现这一目标?

0 个答案:

没有答案