Чтение карты из yaml в Java становится нулевым
У меня проблема с чтением моего yaml через Java, используя Spring. Позвольте мне сначала показать код
@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;
}
}
Мой файл yaml:
cassandra:
hosts: localhost:9142, 127.0.0.1:9142
keyspace: test
countries:
orders:
JPY: 1000
USD: 1000
requests:
JPY: 100000
USD: 100000
Весенний контекст xml также имеет следующее:
<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" />
Теперь ожидание, которое я имею (имел), состоит в том, что во время выполнения моего приложения для весеннего теста (контекст xml взят из моих ресурсов тестирования, yaml также находится в моем тесте), эти значения заказов и запросов устанавливаются, но они нулевые. Кроме того, обратите внимание, что в моем yaml есть и другие значения, кроме того, что я добавляю с помощью @Value ($ {...}), они вводятся абсолютно нормально!
Я посмотрел на это:Spring Boot - добавить карту из application.yml
Я сделал практически то же самое, но все же мои значения не установлены. Пожалуйста, помогите.
Я собирался через гугл, нашел эту ссылку:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.html
Здесь говорится, что все читается как строка, а не как карта. Есть ли другой класс, который поддерживает чтение файла Yaml так, как они это делали здесь:Spring Boot - добавить карту из application.yml
Или мое понимание YamlPropertiesFactoryBean неверно?
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'
Это зависимости в Gradle. Вы можете быть удивлены, почему у меня есть Spring-Core и Spring-Boot, по сути, я не хочу Spring-Boot, но без Spring-Boot, я не могу добавить @EnableConfigurationProperties и @ConfigurationProperties, я, честно говоря, не знаю, смогу ли я прочитать содержимое yaml на карте без них. Следовательно, эти две зависимости добавляются, но если есть способ удалить их, я был бы более чем счастлив удалить эти две зависимости.
С уважением, Паван