Мы используем приложение загрузки весны, где свойства загружаются из файла application.yml вместо application.properties, расположенного по адресу src/main/resources /, который выглядит следующим образом:
config:
хозяин: локальный: 8080
сервер: 123Использование двух файлов yaml для свойств конфигурации
И они тянут в файле .java как этот
@ConfigurationProperties(prefix="config")
public class ConnectionImpl implements Connection{
@Value("${config.host}")
private Stringhost;
}
я в состоянии получить свойства таким образом. Но мы пытаемся переместить свойства конфигурации из application.yml в другой .yml-файл, который находится в другом месте. (SRC/основная/ресурсы/ENV-конфигурация).
Теперь я не могу получить свойства таким же образом, то есть используя аннотацию @Value. Есть ли еще какая-то аннотация, которую мне нужно добавить?
Вам нужно загрузить оба свойства yaml одновременно или в разных средах - например. dev/test/prod? Кроме того, вам нужны свойства Configurations или вы можете жить с источником Properties? например. @PropertySource ("classpath: $ {some.file.name} .yaml") - таким образом вы можете использовать переменную env SUSE SOME_FILE_NAME или параметр, как -Dsome.file.name =, в стартовом вызове командной строки java. – chaos
Нам нужны оба одновременно. Нам нужны свойства конфигурации. – user2296988
В этом случае я бы представлял собой сочетание нескольких файлов свойств + окружения vars. Например, у меня будет «jms. .yaml» и «db. .yaml» и даже «utils. .yaml». Каждый из этих файлов будет иметь pojo, аннотированный с помощью @PropertySource ("classpath:/com/$ {my.path: default/path}/db. $ {Env: local} .properties") - вы можете переопределить это с помощью -Dmy .path = path/to/yaml/files и -Denv = dev в командной строке - так что если вы упакуете свой ямль в свои банки, он найдет там реквизиты, но если вам нужно изменить это на файл yaml в файловой системе , вы также можете переопределить его там. –
chaos