Константы в файле свойств - PullRequest
0 голосов
/ 27 июня 2019

Моя команда является новичком в Spring Boot, и большинство участников ранее работали над унаследованным приложением J2EE. У меня есть предыдущий опыт работы с Spring Boot и микросервисами. Мой вопрос о шаблоне, который они используют, который я никогда раньше не видел и хочу понять, почему это может или не может быть хорошей идеей.

Они создавали несколько файлов свойств и добавляли пары ключей-значений в эти файлы свойств, которые вставляются в поля объектов с помощью @Value или ResourceBundle.

Например, то, что я обычно воспринимаю как цвет, похожий на Enum, будет добавлено в файл свойств, то же самое с константами.

#color.properties
color.r = red
color.b = blue
color.g = green

Кажется, что пишется много ненужного кода, например, вставка всех значений в класс, а затем создание массива со значениями в них. Мы также боремся за то, чтобы это заработало.

Я думал, что смысл файла свойств был для внешнего конфигурации. Почему моя команда делает это, когда Java предоставляет типы данных и структуры для этих вещей?

Полагаю, я бы хотел сделать это путем создания Enums и служебных классов со статическими константными полями.

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Вы правы в том, что

точка файла свойств была для внешней конфигурации

Помещайте вещи в свойства, только если вам нужно, чтобы это свойство былонастраивается с различными значениями для каждого клиента / среды / исполнения.Даже добавление некоторых свойств, которые редко изменяются, может сделать ваши свойства чрезмерно большими и громоздкими.Поэтому, если эти константы не предназначены для изменения, они ОПРЕДЕЛЕННО делают НЕ принадлежащими в свойствах.Либо используйте Enum, либо помещайте их в интерфейс, либо как static public члены в абстрактный класс.Назовите это Constants или как-то так

0 голосов
/ 27 июня 2019

Это не правильный путь, вы правы, мы должны использовать ENUM для такого типа констант.

Обычно файл свойств используется для хранения данных конфигурации проекта или настроек

Если вы говорите о приложении application.properties в Spring, то это худшая вещь

. Пожалуйста, пройдите по ссылке ниже для лучшего использования приложения application.properties

Spring Application.properties

Надеюсь, это поможет

...