Просматривал и не нашел простого решения этой проблемы.
Я только начал использовать Spring Boot и пытался посмотреть, смогу ли я сделать что-то подобное, как в Android getResources().getString(R.string.mystring).
У меня может быть изменяющийся список ссылок на документы API, описания кодов ошибок и многие другие «статические строки», и я хотел бы хранить их в одном месте (например, в папке res в качестве ресурса XML) по тем же причинам, по которым это рекомендуется в Android (легкие изменения и упрощенный перевод).
До сих пор я видел способы сказать получить InputStream из файла в папке ресурсов ... но это не совсем то, что мне нужно.




Для небольшого подмножества свойств вы можете сохранить строку в application.properties, используйте
Application.properties:
my.string.in.properties=test
Внутри вашего bean-компонента:
@Value("${my.string.in.properties:my_default_value}")
String myString;
Это загрузит значение "test" в myString. Если ключ отсутствует в файле свойств, он загрузит все, что вы поместите после :.
Android генерирует класс R динамически, используя препроцессор, который прослушивает изменения файла и создает «гигантский» статический класс во время компиляции. Вот почему вы можете получить к нему доступ безопасным способом.
@Jcov Вам действительно не нужно загромождать файл application.properties. Вы также можете иметь несколько файлов, каждый из которых представляет один тип данных, например. error-code.properties.
Я, вероятно, немного опоздал на вечеринку, но как только возможное решение - все еще использовать файл свойств и получать значения с помощью org.springframework.core.env.Environment, например:
@Autowired
Environment env;
Затем вы можете получить значение записи в файле свойств следующим образом:
env.getProperty("foo.bar");
Спасибо. Это хорошее начало, но я бы не стал загромождать свою конфигурацию appliaction.properties, скажем, более чем 100 ссылками и строками кода ошибки. Я бы предпочел, если возможно, способ ссылаться на строки, скажем, из XML-документа в папке res, как в Android. Если, похоже, для этого нет возможности, то да, мне придется прибегнуть к, возможно, ужасному синтаксическому анализу файлов -> RAM -> Идея объекта JSON или добавлению к свойствам.