Lendo um mapa do yaml em Java ficando nulo

Estou tendo um problema ao ler meu yaml através do java, usando spring. Deixe-me mostrar o código primeiro

@Component
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "countries")
public class UserLimitReader {

    private HashMap<String, Integer> orders;

    private HashMap<String, Integer> requests;

    public HashMap<String, Integer> getOrders() {
        return orders;
    }

    public void setOrderRedeemableLimit(HashMap<String, Integer>         orders) 
{
        this.orders= orders;
}

public HashMap<String, Integer> getRequests() {
    return requests;
}

public void setMonthlyRedeemableLimit(HashMap<String, Integer> requests) {
    this.requests= requests;
}
}

Meu arquivo yaml:

cassandra:
    hosts: localhost:9142, 127.0.0.1:9142
    keyspace: test
countries:
    orders:
      JPY: 1000
      USD: 1000
    requests:
      JPY: 100000
      USD: 100000

O contexto de primavera xml também possui:

<bean id="yamlProperties"
    class="org.springframework.beans.factory.config.YamlPropertiesFactoryBean">
    <property name="resources">
        <value>classpath:config/application.yaml</value>
    </property>
</bean>

<context:property-placeholder
    properties-ref="yamlProperties" />

Agora, a expectativa que eu tenho (é) é que, durante o tempo de execução do meu aplicativo de teste de primavera (o contexto xml é dos meus recursos de teste, o yaml também está no meu teste), esses valores de pedidos e solicitações são definidos, mas eles são nulos. Além disso, observe que existem outros valores no meu yaml além disso que estou injetando usando @Value ($ {...}), eles são injetados absolutamente bem!

Eu olhei para isso:Spring Boot - injeta o mapa em application.yml

Fiz praticamente o mesmo, mas ainda assim meus valores não estão definidos. Por favor, ajude.

Eu estava passando pelo google, encontrei este link:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.html

Nisto, diz, tudo é lido como uma string e não como um mapa. Existe alguma outra classe que suporte a leitura do arquivo Yaml da maneira que eles fizeram aqui:Spring Boot - injeta o mapa em application.yml

Ou o meu entendimento do YamlPropertiesFactoryBean está errado?

compile 'org.springframework:spring-core:4.2.+'
compile 'org.springframework:spring-beans:4.2.+'
compile 'org.springframework:spring-context:4.2.+'
compile 'org.springframework.boot:spring-boot:1.3.1.RELEASE'
compile 'org.springframework.boot:spring-boot-configuration-processor:1.3.1.RELEASE'

Estas são as dependências em gradle. Você pode estar se perguntando por que eu tenho spring-core e spring-boot, essencialmente, não quero spring-boot, mas sem spring-boot, não consigo adicionar @EnableConfigurationProperties e @ConfigurationProperties, sinceramente não sei se consigo ler o conteúdo do yaml em um mapa sem eles. Portanto, essas duas dependências são adicionadas, mas se houver uma maneira de removê-las, eu ficaria mais do que feliz em remover essas duas dependências.

Atenciosamente, Pavan

questionAnswers(1)

yourAnswerToTheQuestion